Установка опций

Как установить опции

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

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

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

x = fminsearch(fun,x0,options)

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

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

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

ОпцияОписаниеРешатели

Отображение

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

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

  • 'iter' отображает промежуточные шаги (не доступный с lsqnonneg). Смотрите Итеративное Отображение.

  • 'off' не отображает промежуточных шагов.

  • '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

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

fminbnd, fminsearch, fzero

TolFun

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

fminsearch

TolX

Допуск завершения к x. Значением по умолчанию является 1.e-4, за исключением fzero, который имеет значение по умолчанию eps (= 2.2204e-16). Смотрите Допуски и Критерий остановки.

fminbnd, fminsearch, fzero, lsqnonneg

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

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

Совет

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

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

  • 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.

Похожие темы

Была ли эта тема полезной?