Итерации могут нарушать ограничения

Промежуточные итерации могут нарушать ограничения

Будьте осторожны при написании ваших объективных и ограничительных функций. Промежуточные итерации могут привести к точкам, которые недопустимы (не удовлетворяют ограничениям). Если вы записываете целевые или ограничительные функции, которые предполагают допустимость, эти функции могут ошибиться или дать неожиданные результаты.

Например, если взять квадратный корень или логарифм 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 решатель

Похожие темы