Установите опции оптимизации

Как задать опции

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

Допуски и критерий остановки

Количество итераций в оптимизации зависит от 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>|), или аналогичная относительная мера.

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

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

  • MaxIter является привязкой к количеству итераций решателя. MaxFunEvals является привязкой к количеству вычислений функции.

Примечание

В отличие от других решателей, fminsearch останавливается, когда удовлетворяет обоим TolFun и TolX.

Структура output

The output структура включает количество вычислений функции, количество итераций и алгоритм. Структура появляется, когда вы предоставляете fminbnd, fminsearch, или fzero с четвертым выходным аргументом, как в

[x,fval,exitflag,output] = fminbnd(@humps,0.3,1);

Детали output структура для каждого решателя находится на страницах с описанием функции.

The output структура не является опцией, которую вы выбираете с optimset. Это необязательный выход для fminbnd, fminsearch, и fzero.

Похожие темы