Я использую lmfit
в Python для подгонки некоторых данных, включая подгонку переменных a, b и c. Мне нужно убедиться, что a ‹ b ‹ c. Я нашел http://cars9.uchicago.edu/software/python/lmfit_MinimizerResult/constraints.html, в котором говорится об ограничениях, которые необходимо определить как неравенства, и о настройке фиктивных переменных. Например, если бы я хотел, чтобы a + b ‹= 10, я мог бы сделать:
pars.add('a', value = 5, vary=True)
pars.add('delta', value = 5, max=10, vary=True)
pars.add('b', expr='delta-a')
И это гарантировало бы, что a + b ‹= 10.
Я предполагаю, что мне понадобится c - b > 0 и b - a > 0 (или, альтернативно, a - b ‹ 0 и b - c ‹ 0), но я не уверен, как это закодировать.