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