Будьте осторожны при записи цели и ограничительных функций. Промежуточные итерации могут привести к точкам, которые неосуществимы (не удовлетворяйте ограничения). Если вы пишете цель или ограничительные функции, которые принимают выполнимость, эти функции могут ошибка или давать неожиданные результаты.
Например, если вы пускаете квадратный корень или логарифм 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