exponenta event banner

Задать параметры оптимизации

Как задать параметры

Можно задать параметры оптимизации с помощью options структура, которая создается с помощью optimset функция. Затем вы проходите options как вход в функцию оптимизации, например, путем вызова fminbnd с синтаксисом

x = fminbnd(fun,x1,x2,options)

или fminsearch с синтаксисом

x = fminsearch(fun,x0,options)

Например, для отображения выходных данных алгоритма в каждой итерации установите значение Display опция для 'iter':

options = optimset('Display','iter');

Таблица опций

ВыборОписаниеРешающие устройства

Display

Флаг, указывающий, отображаются ли промежуточные шаги на экране.

  • 'notify' (по умолчанию) вывод отображается только в том случае, если функция не сходится.

  • 'iter' отображает промежуточные шаги (недоступно с lsqnonneg). См. раздел Итерационное отображение решателя оптимизации.

  • 'off' или 'none' не отображает промежуточные шаги.

  • 'final' отображает только окончательный результат.

fminbnd, fminsearch, fzero, lsqnonneg

FunValCheck

Проверьте допустимость значений целевой функции.

  • 'on' отображает ошибку, когда целевая функция или ограничения возвращают значение, которое является сложным или NaN.

  • 'off' (по умолчанию) не отображает ошибок.

fminbnd, fminsearch, fzero

MaxFunEvals

Максимально допустимое число оценок функций. Значение по умолчанию: 500 для fminbnd и 200*length(x0) для fminsearch.

fminbnd, fminsearch

MaxIter

Максимально допустимое число итераций. Значение по умолчанию: 500 для fminbnd и 200*length(x0) для fminsearch.

fminbnd, fminsearch

OutputFcn

Отображение информации об итерациях решателя. Значение по умолчанию: [] Ничего. См. раздел Функции вывода решателя оптимизации.

fminbnd, fminsearch, fzero

PlotFcns

Печать информации об итерациях решателя. Значение по умолчанию: [] Ничего. Доступные предопределенные функции см. в разделе Функции печати решателя оптимизации.

fminbnd, fminsearch, fzero

TolFun

Допуск окончания для значения функции. Значение по умолчанию: 1.e-4. См. раздел Допуски и критерии остановки.

fminsearch

TolX

Допуск окончания для x. Значение по умолчанию: 1.e-4, за исключением fzero, которая имеет значение по умолчанию eps (= 2.2204e-16), и lsqnonneg, которая имеет значение по умолчанию 10*eps*norm(c,1)*length(c). См. раздел Допуски и критерии остановки.

fminbnd, fminsearch, fzero, lsqnonneg

Критерии допусков и останова

Количество итераций в оптимизации зависит от критериев остановки решателя. Эти критерии включают несколько допусков, которые можно задать. Как правило, допуск является порогом, который при пересечении останавливает итерации решателя.

Совет

Как правило, установите TolFun и TolX допуски значительно выше eps, и обычно выше 1e-14. Установка малых допусков не гарантирует точных результатов. Вместо этого решатель может не распознать, когда он сошелся, и может продолжить бесполезные итерации. Значение допуска меньше eps эффективно отключает это состояние остановки. Этот совет не применяется к fzero, которая использует значение по умолчанию eps для TolX.

  • TolX - нижняя граница по размеру ступени, означающая норму (xi - xi + 1). Если решатель пытается выполнить шаг, меньший, чемTolX, итерации заканчиваются. Решатели обычно используют TolX как относительная граница, означающая итерации, заканчивающиеся когда | (xi  - xi + 1) | <TolX* (1 + | xi |) или аналогичная относительная мера.

    Plot showing how iterations end when the last step is smaller than TolFun or TolX.

  • TolFun - нижняя граница изменения значения целевой функции во время шага. Если | f ( xi) - f (xi + 1) | <TolFun, итерации заканчиваются. Решатели обычно используют TolFun как относительная связь, означающая, что итерации заканчиваются, когда | f ( xi) - f (xi +  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.

Связанные темы