Можно задать параметры оптимизации с помощью options структуру, которую вы создаете используя optimset функция. Затем проходите options как вход в оптимизационную функцию, например, вызовом fminbnd с синтаксисом
x = fminbnd(fun,x1,x2,options)
или fminsearch с синтаксисом
x = fminsearch(fun,x0,options)
Для примера, чтобы отображаемому выводу из алгоритма при каждой итерации, установите Display опция для 'iter':
options = optimset('Display','iter');| Опция | Описание | Решатели |
|---|---|---|
| Флаг, указывающий, появляются ли промежуточные шаги на экране.
| fminbnd, fminsearch, fzero, lsqnonneg |
| Проверьте, действительны ли значения целевой функции.
| fminbnd, fminsearch, fzero |
| Максимально допустимое количество вычислений функции. Значение по умолчанию | fminbnd, fminsearch |
| Максимально допустимое количество итераций. Значение по умолчанию | fminbnd, fminsearch |
| Отображение информации о итерациях решателя. Значение по умолчанию является | fminbnd, fminsearch, fzero |
| Постройте график информации о итерациях решателя. Значение по умолчанию является | fminbnd, fminsearch, fzero |
| Допуск на прекращение для значения функции. Значение по умолчанию | fminsearch |
| Допуск завершения для x. Значение по умолчанию | fminbnd, fminsearch, fzero, lsqnonneg |
Количество итераций в оптимизации зависит от stopping criteria для решателя. Эти критерии включают несколько tolerances, которые можно задать. Обычно допуск является порогом, который, если его пересечь, останавливает итерации решателя.
Совет
Как правило, установите TolFun и TolX допуски к значению выше eps, и обычно выше 1e-14. Установка небольших допусков не гарантирует точных результатов. Вместо этого решатель может не распознать, когда он сходится, и может продолжить бесполезные итерации. Значение допуска, меньшее eps эффективно отключает это условие остановки. Этот совет не применяется к fzero, которое использует значение по умолчанию eps для TolX.
TolX является нижней границей на размер шага, означающим норму (xi - x i + 1). Если решатель пытается сделать шаг, который меньше TolX, итерации заканчиваются. Решатели обычно используют TolX как относительная граница, означая завершение итераций, когда | (xi - <reservedrangesplaceholder2> <reservedrangesplaceholder1> +1) | <TolX* (1 + |<reservedrangesplaceholder0>|), или аналогичная относительная мера.

TolFun - нижняя граница изменения значения целевой функции во время шага. Если |<reservedrangesplaceholder5> (xi) - f (x i + 1) | < TolFun, итерации заканчиваются. Решатели обычно используют TolFun как относительная граница, означая завершение итераций, когда | f (<reservedrangesplaceholder4>) - f (x <reservedrangesplaceholder1> +1) | <TolFun(1 + |<reservedrangesplaceholder1> (xi) |), или аналогичная относительная мера.
MaxIter является привязкой к количеству итераций решателя. MaxFunEvals является привязкой к количеству вычислений функции.
Примечание
В отличие от других решателей, fminsearch останавливается, когда удовлетворяет обоим TolFun и TolX.
The output структура включает количество вычислений функции, количество итераций и алгоритм. Структура появляется, когда вы предоставляете fminbnd, fminsearch, или fzero с четвертым выходным аргументом, как в
[x,fval,exitflag,output] = fminbnd(@humps,0.3,1);
Детали output структура для каждого решателя находится на страницах с описанием функции.
The output структура не является опцией, которую вы выбираете с optimset. Это необязательный выход для fminbnd, fminsearch, и fzero.