optimset

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

Описание

пример

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

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

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

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

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

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

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

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

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

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

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

FunValCheck доступно для fminbndfminsearch, и 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 доступно для fminbndfminsearch, и fzero.

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

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

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

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

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

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

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

PlotFcns опция доступна для fminbndfminsearch, и 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®: fminbndfminsearchfzero, и lsqnonneg. Чтобы установить опции для Optimization Toolbox™ или решателей Global Optimization Toolbox, рекомендуемой функцией является optimoptions.

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

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

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

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

Для просмотра документации необходимо авторизоваться на сайте