optimset

Создайте или измените структуру опций оптимизации

Синтаксис

options = optimset(Name,Value)
optimset
options = optimset
options = optimset(optimfun)
options = optimset(oldopts,Name,Value)
options = optimset(oldopts,newopts)

Описание

пример

options = optimset(Name,Value) возвращает options с заданным набором параметров с помощью одного или нескольких аргументов пары "имя-значение".

optimset (без аргументов ввода или вывода), отображает полный список параметров с их допустимыми значениями.

options = optimset (без входных параметров), создает структуру опций options, где все параметры устанавливаются на [].

пример

options = optimset(optimfun) создает options со всеми названиями параметра и значениями по умолчанию, относящимися к функции оптимизации optimfun.

пример

options = optimset(oldopts,Name,Value) создает копию oldopts и изменяет заданные параметры с помощью одного или нескольких аргументов пары "имя-значение".

пример

options = optimset(oldopts,newopts) комбинирует существующую структуру опций oldopts с новой структурой опций newopts. Любые параметры в newopts с непустыми значениями перезаписывают соответствующие параметры в oldopts.

Примеры

свернуть все

Установите опции для fminsearch использовать функцию построения графика и более строгое условие остановки, чем значение по умолчанию.

options = optimset('PlotFcns','optimplotfval','TolX',1e-7);

Минимизируйте функцию Розенброка, начинающую с точки (-1,2), и контролируйте процесс минимизации при помощи опций. Функция Розенброка имеет минимальное значение 0 в точке (1,1).

fun = @(x)100*((x(2) - x(1)^2)^2) + (1 - x(1))^2; % Rosenbrock's function
x0 = [-1,2];
[x,fval] = fminsearch(fun,x0,options)

x = 1×2

    1.0000    1.0000

fval = 4.7305e-16

Создайте структуру, содержащую опции по умолчанию для решателя fzero.

options = optimset('fzero');

Просмотрите значение по умолчанию опции TolX для fzero.

tol = options.TolX
tol = 2.2204e-16

Установите опции использовать функциональный допуск 1e-6.

oldopts = optimset('TolFun',1e-6);

Измените опции в oldopts, чтобы использовать функцию построения графика 'optimplotfval' и значение TolX 1e-6.

options = optimset(oldopts,'PlotFcns','optimplotfval','TolX',1e-6);

Просмотрите три опции, которые вы устанавливаете.

disp(options.TolFun);
   1.0000e-06
disp(options.PlotFcns);
optimplotfval
disp(options.TolX);
   1.0000e-06

Перезапишите соответствующие части одной структуры опций со структурой различных вариантов при помощи optimset.

oldopts = optimset('Display','iter','TolX',1e-6);
newopts = optimset('PlotFcns','optimplotfval','Display','off');
options = optimset(oldopts,newopts);

И oldopts и newopts устанавливают значение опции Display. Проверяйте, что newopts перезаписывает oldopts для этой опции.

options.Display
ans = 
'off'

Проверяйте значения других двух опций.

options.TolX
ans = 1.0000e-06
options.PlotFcns
ans = 
'optimplotfval'

Входные параметры

свернуть все

Решатель оптимизации, заданный как имя или указатель на функцию. Возвращенная структура опций имеет непустые записи для заданного решателя только.

Пример: options = optimset('fzero')

Пример: options = optimset(@fminsearch)

Типы данных: char | string | function_handle

Предыдущие опции оптимизации, заданные как структура. Вывод options совпадает с oldopts, за исключением заданных параметров.

Пример: options = optimset(oldopts,'TolX',1e-6)

Типы данных: struct

Новые опции оптимизации, заданные как структура. Вывод options совпадает с newopts, и также включает непустые параметры oldopts, которые пусты в newopts.

Пример: options = optimset(oldopts,newopts)

Типы данных: struct

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: options = optimset('TolX',1e-6,'PlotFcns',@optimplotfval)

Уровень отображения, заданного как пара, разделенная запятой, состоящая из 'Display' и одно из этих значений:

  • Вывод 'notify' — Display, только если функция не сходится.

  • 'final' — Отобразите только окончательный вывод.

  • 'off' или 'none' — Не отобразите вывод.

  • 'iter' — Display вывод в каждой итерации (не доступный для lsqnonneg).

Display доступен для всех решателей оптимизации.

Пример: options = optimset('Display','iter')

Типы данных: char | string

Отметьте, чтобы проверять, допустимы ли значения функции, заданы как пара, разделенная запятой, состоящая из 'FunValCheck' и значения 'off' или 'on'. Когда значением является 'on', решатели отображают ошибку, когда целевая функция возвращает значение, которое является комплексным или NaN.

FunValCheck доступен для fminbnd, fminsearch и fzero.

Пример: options = optimset('FunValCheck','on')

Типы данных: char | string

Максимальное количество функциональных оценок, заданных как пара, разделенная запятой, состоящая из 'MaxFunEvals' и положительного целого числа.

MaxFunEvals доступен для fminbnd и fminsearch.

Пример: options = optimset('MaxFunEvals',2e3)

Типы данных: single | double

Максимальное количество итераций, заданных как пара, разделенная запятой, состоящая из 'MaxIter' и положительного целого числа.

MaxIter доступен для fminbnd и fminsearch.

Пример: options = optimset('MaxIter',2e3)

Типы данных: single | double

Выходная функция, заданная как пара, разделенная запятой, состоящая из 'OutputFcn' и имени функции или указателя на функцию. Задайте несколько выходных функций как cell-массив указателей на функцию. Выходная функция выполняется после каждой итерации, позволяя вам контролировать процесс решения или остановить итерации. Для получения дополнительной информации смотрите Выходные функции.

OutputFcn доступен для fminbnd, fminsearch и fzero.

Пример: options = optimset('OutputFcn',{@outfun1,@outfun2})

Типы данных: char | string | cell | function_handle

Функции построения графика, заданные как пара, разделенная запятой, состоящая of 'PlotFcns' и имя функции или указатель на функцию. Задайте несколько функций построения графика как cell-массив указателей на функцию. Функция построения графика выполняется после каждой итерации, позволяя вам контролировать процесс решения или остановить итерации. Для получения дополнительной информации смотрите Функции построения графика.

Встроенные функции построения графика следующие:

  • @optimplotx строит текущую точку.

  • @optimplotfval строит значение функции.

  • @optimplotfunccount строит функциональное количество (не доступный для fzero).

Опция PlotFcns доступна для fminbnd, fminsearch и fzero.

Пример: options = optimset('PlotFcns','optimplotfval')

Типы данных: char | string | cell | function_handle

Допуск завершения на значении функции, заданном как пара, разделенная запятой, состоящая из 'TolFun' и неотрицательного скаляра. Итерации заканчиваются, когда текущее значение функции отличается от предыдущего значения меньше, чем TolFun относительно начального значения функции. Смотрите Допуски и Критерий остановки.

TolFun доступен для fminsearch только.

Пример: options = optimset('TolFun',2e-6)

Типы данных: single | double

Допуск завершения на x, текущей точке, заданной как пара, разделенная запятой, состоящая из 'TolX' и неотрицательного скаляра. Итерации заканчиваются, когда текущая точка отличается от предыдущей точки меньше, чем TolX относительно размера x. Смотрите Допуски и Критерий остановки.

TolX доступен для всех решателей.

Пример: options = optimset('TolFun',2e-6)

Типы данных: single | double

Выходные аргументы

свернуть все

Опции оптимизации, возвращенные как структура. Значениями для параметров, которые вы не устанавливаете, является [], который заставляет решатели использовать значения по умолчанию этих параметров.

Ограничения

  • optimset устанавливает опции для четырех решателей оптимизации MATLAB®: fminbnd, fminsearch, fzero и lsqnonneg. Чтобы установить опции для Optimization Toolbox™ или решателей Global Optimization Toolbox, рекомендуемой функцией является optimoptions.

  • optimset не может установить опции для некоторых решателей Optimization Toolbox, таких как intlinprog. Используйте optimoptions вместо этого.

  • optimset не может установить большинство опций для решателей Global Optimization Toolbox. Используйте optimoptions вместо этого.

Расширенные возможности

Представлено до R2006a