主要内容

optimset

创建或修改优化选项结构

描述

例子

选项= optimset (名称,值返回选项使用一个或多个名称-值对参数设置指定的参数。

optimset(不带输入或输出参数)显示参数及其有效值的完整列表。

选项= optimset(不带输入参数)创建一个选项结构选项所有参数设置在哪里[]

例子

选项= optimset (optimfun创建选项包含与优化函数相关的所有参数名称和默认值optimfun

例子

选项= optimset (oldopts名称,值的副本oldopts并使用一个或多个名称-值对参数修改指定的参数。

例子

选项= optimset (oldoptsnewopts结合现有的选项结构oldopts新的期权结构newopts.任何参数newopts使用非空值覆盖对应的参数oldopts

例子

全部折叠

设置选项fminsearch使用plot函数和比默认值更严格的停止条件。

选择= optimset (“PlotFcns”“optimplotfval”“TolX”1 e);

从点(- 1,2)开始最小化Rosenbrock函数,并使用选项监视最小化过程。Rosenbrock函数在点(1,1)处的最小值为0。

趣味性= @(x)100*((x(2) - x(1)²)²+ (1 - x(1))²;%。海涅的功能x0 = [1, 2];[x, fval] = fminsearch(有趣,x0,选项)

{

x =1×21.0000 - 1.0000
fval = 4.7305 e-16

控件的默认选项创建一个结构fzero解算器。

选择= optimset (“fzero”);

参数的默认值TolX选择fzero

托尔=选项。TolX
托尔= 2.2204 e-16

设置选项以使用的功能公差1 e-6

oldopts = optimset (“TolFun”1 e-6);

修改选项oldopts使用“optimplotfval”图函数和aTolX的价值1 e-6

选择= optimset (oldopts,“PlotFcns”“optimplotfval”“TolX”1 e-6);

查看您设置的三个选项。

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

用不同的选项结构覆盖一个选项结构的相应部分optimset

oldopts = optimset (“显示”“通路”“TolX”1 e-6);newopts = optimset (“PlotFcns”“optimplotfval”“显示”“关闭”);选择= optimset (oldopts newopts);

这两个oldopts而且newopts的值显示选择。检查newopts覆盖oldopts这个选项。

选项。显示
ans = '了'

检查其他两个选项的值。

选项。TolX
ans = 1.0000 e-06
选项。PlotFcns
ans = ' optimplotfval '

输入参数

全部折叠

优化求解器,指定为名称或函数句柄。返回的选项结构只有针对指定求解器的非空项。

例子:选择= optimset(“fzero”)

例子:选项= optimset (@fminsearch)

数据类型:字符|字符串|function_handle

以前的优化选项,指定为结构。输出选项oldopts,除指定参数外。

例子:选择= optimset (e-6 oldopts ' TolX ', 1)

数据类型:结构体

新的优化选项,指定为结构。输出选项newopts的非空参数oldopts里面是空的newopts

例子:选择= optimset (oldopts newopts)

数据类型:结构体

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

例子:选择= optimset (TolX, 1 e-6 PlotFcns, @optimplotfval)

您只需要输入足够的前导字符来惟一地定义选项名称。optimset忽略选项名称的大小写(大写或小写)。

显示级别,指定为逗号分隔的一对,由' display '和以下值之一组成:

  • “通知”-仅当函数不收敛时显示输出。

  • “最后一次”-只显示最终输出。

  • “关闭”“没有”—无输出。

  • “通路”-显示每次迭代的输出(不能用于lsqnonneg).

显示可用于所有优化求解器。

例子:选择= optimset(“显示”,“iter”)

数据类型:字符|字符串

标志来检查函数值是否有效,指定为逗号分隔的对,由“FunValCheck”和价值“关闭”“上”.当值为“上”,当目标函数返回的值是复数或

FunValCheck可用于fminbndfminsearch,fzero

例子:选择= optimset(“FunValCheck”,“上”)

数据类型:字符|字符串

函数求值的最大数目,指定为逗号分隔的对,由“MaxFunEvals”一个正整数。

MaxFunEvals可用于fminbnd而且fminsearch

例子:选择= optimset (MaxFunEvals, 2 e3)

数据类型:|

最大迭代次数,指定为逗号分隔的对,由“麦克斯特”一个正整数。

麦克斯特可用于fminbnd而且fminsearch

例子:选择= optimset(“麦克斯特”,2 e3)

数据类型:|

输出函数,指定为逗号分隔的对,由“OutputFcn”和函数名或函数句柄。指定多个输出函数作为函数句柄的单元格数组。输出函数在每次迭代之后运行,使您能够监视解决方案过程或停止迭代。有关更多信息,请参见优化求解器输出函数

OutputFcn可用于fminbndfminsearch,fzero

例子:选择= optimset (OutputFcn, {@outfun1, @outfun2})

数据类型:字符|字符串|细胞|function_handle

Plot函数,指定为逗号分隔的对,由“PlotFcns”和函数名或函数句柄。指定多个plot函数作为函数句柄的单元格数组。plot函数在每次迭代之后运行,使您能够监视解决方案过程或停止迭代。有关更多信息,请参见优化求解器绘图函数

内置的plot函数如下:

  • @optimplotx绘制当前点。

  • @optimplotfval绘制函数值。

  • @optimplotfunccount绘制函数计数(不能用于fzero).

PlotFcns可用于fminbndfminsearch,fzero

例子:选择= optimset(“PlotFcns”、“optimplotfval”)

数据类型:字符|字符串|细胞|function_handle

函数值的终止公差,指定为逗号分隔的对,由“TolFun”一个非负的标量。当当前函数值与前一个函数值相差小于时,迭代结束TolFun,相对于初始函数值。看到公差和停止标准

TolFun可用于fminsearch只有。

例子:选择= optimset (TolFun, 2 e-6)

数据类型:|

终止上公差x为当前点,指定为逗号分隔的对,由“TolX”一个非负的标量。当当前点与前一个点的差小于时,迭代就结束了TolX,相对于的大小x.看到公差和停止标准

TolX适用于所有求解器。

例子:选择= optimset (TolFun, 2 e-6)

数据类型:|

输出参数

全部折叠

优化选项,作为结构返回。未设置的参数值为[],这将导致求解器使用这些参数的默认值。

限制

  • optimset设置选项的四个MATLAB®优化解决方案:fminbndfminsearchfzero,lsqnonneg.设置“优化工具箱™”或“优化工具箱”的选项全局优化工具箱求解器,推荐函数为optimoptions(优化工具箱)

  • optimset无法为某些优化工具箱求解器设置选项,例如intlinprog.使用optimoptions(优化工具箱)代替。

  • optimset不能设置大多数选项全局优化工具箱解决者。使用optimoptions(优化工具箱)代替。

扩展功能

版本历史

之前介绍过的R2006a

Baidu
map