Будьте внимательны при написании целевых функций и функций ограничения. Промежуточные итерации могут привести к тому, что точки станут неосуществимыми (не удовлетворяют ограничениям). При записи целевых функций или функций ограничения, предполагающих выполнимость, эти функции могут привести к ошибкам или привести к неожиданным результатам.
Например, если взять квадратный корень или логарифм x, а x < 0, результат будет ненастоящим. Вы можете попытаться избежать этой ошибки, установив 0 как нижняя граница на x. Тем не менее, промежуточная итерация может нарушить эту границу.
Некоторые алгоритмы решателя удовлетворяют ограничивающим ограничениям на каждой итерации:
fmincon interior-point, sqp, и trust-region-reflective алгоритмы
lsqcurvefit trust-region-reflective алгоритм
lsqnonlin trust-region-reflective алгоритм
fminbnd
Примечание
Если задать нижнюю границу равной верхней, итерации могут нарушать эти ограничения.
Следующие решатели и алгоритмы могут нарушать ограничивающие ограничения в промежуточных итерациях:
fmincon active-set алгоритм
fgoalattain решающее устройство
fminimax решающее устройство
fseminf решающее устройство