Можно задать параметры оптимизации с помощью 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
.