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