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. The axes 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 должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке 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

Функции построения графика, заданные как разделенная разделенными запятой парами, состоящая из '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