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

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

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

Отобразите информацию об итерациях решателя. Значением по умолчанию является [] 'none'. Смотрите выходные функции решателя оптимизации.

fminbnd, fminsearch, fzero

PlotFcns

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

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 – x i +1) | <TolX* (1 + |xi |), или подобная относительная мера.

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

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

Похожие темы