optimset

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

Описание

Создайте или измените структуру опций для MATLAB® решатели.

Примечание

optimoptions вместо рекомендуют optimset для всех решателей кроме fzero, fminbnd, fminsearch, и lsqnonneg.

пример

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)

Figure Optimization Plot Function contains an axes object. The axes object with title Current Function Value: 4.73054e-16 contains an object of type line.

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,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

Level of display в виде разделенной запятой пары, состоящей из 'Display' и одно из этих значений:

  • 'notify' — Отображаемый вывод, только если функция не сходится.

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

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

  • 'iter' — Отображаемый вывод в каждой итерации (не доступный для 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