Если я правильно понимаю, то, что вы ищете, - это ответ на вопрос, имеет ли значение f(A,B,C)
, ограниченное в домене [a_l,a_u]x[b_l,b_u]x[c_l,c_u]
, значением в пределах [d_l,d_u]
. Вы можете попробовать использовать scipy.optimize.minimize
для этого.
Если вы запускаете scipy.optimize.minimize
на f
с границами [a_l,a_u]x[b_l,b_u]x[c_l,c_u]
, вы должны получить минимальное значение f
в домене. Аналогично, минимизация -f
даст вам максимальное значение f
в домене. f
пересекает заданную границу тогда и только тогда, когда интервал [fmin, fmax]
пересекает интервал [d_l,d_u]
.
Обратите внимание, что scipy.optimize.minimize
является нелинейной оптимизацией и поэтому требует первоначального предположения. Средняя точка доменного блока является естественным выбором, но, поскольку нелинейная оптимизация может встретиться с локальным минимумом (или не сходиться), вы можете попробовать несколько других начальных предположений. У scipy.optimize.minimize
есть много (необязательных) параметров, поэтому я рекомендую вам прочитать документацию и поиграть с ними, чтобы настроить использование в соответствии с вашими потребностями.