主要内容

optimset

创建或修改优化选项结构

描述

为MATLAB创建或修改选项结构®解决者。

请注意

optimoptions被推荐而不是optimset对于所有解算器,除了fzerofminbndfminsearch,lsqnonneg

例子

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

optimset(没有输入或输出参数)显示包含有效值的完整参数列表。

选项= optimset(没有输入参数)创建一个选项结构选项其中所有参数都设置为[]

例子

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

例子

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

例子

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

例子

全部折叠

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

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

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

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

图优化Plot函数包含一个轴对象。标题为当前函数值:4.73054e-16的轴对象包含一个类型为line的对象。

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”Plot函数和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);

这两个oldoptsnewopts设置的值显示选择。检查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,…,的家

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

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

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

  • “通知”—只有当函数不收敛时才显示输出。

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

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

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

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

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

数据类型:字符|字符串

检查函数值是否有效的标志,指定为由逗号分隔的对组成“FunValCheck”和价值“关闭”“上”.当值为“上”,当目标函数返回一个复杂或复杂的值时,求解器将显示错误

FunValCheck可用于fminbndfminsearch,fzero

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

数据类型:字符|字符串

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

MaxFunEvals可用于fminbndfminsearch

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

数据类型:|

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

麦克斯特可用于fminbndfminsearch

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

数据类型:|

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

OutputFcn可用于fminbndfminsearch,fzero

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

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

Plot函数,指定为逗号分隔对,由“PlotFcns”以及函数名或函数句柄。指定多个绘图函数作为函数句柄的单元格数组。在每个迭代之后运行一个绘图功能,使您能够监视解决方案流程或停止迭代。有关更多信息,请参见绘制函数输出函数和绘图函数语法

内置的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