主要内容

优化集

创建或修改优化选项结构

描述

例子

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

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

选项= Optimset.(没有输入参数)创建一个选项结构选项所有参数设置为[]

例子

选项= OptimSet(optimfun创建选项具有与优化功能相关的所有参数名称和默认值optimfun

例子

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

例子

选项= OptimSet(oldoptsnewopts结合现有的选项结构oldopts具有新的选择结构newopts.任何参数newopts使用非空值覆盖相应的参数oldopts

例子

全部折叠

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

选项= OptimSet(“PlotFcns”“optimplotfval”“TolX”,1E-7);

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

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

图优化绘图功能包含轴。具有标题电流功能值的轴:4.73054E-16包含类型线的对象。

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

属性的默认选项创建一个结构Fzero.解算器。

选项= OptimSet(“fzero”);

查看默认值TolX选择Fzero.

tol = option.tolx.
托尔= 2.2204 e-16

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

Oldopts = Optimset('tolfun'1 e-6);

修改选项oldopts使用“optimplotfval”绘图功能和一个TolX的价值1E-6

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

查看您设置的三个选项。

disp (options.TolFun);
1.0000E-06.
disp (options.PlotFcns);
OptimplotFval.
disp (options.TolX);
1.0000E-06.

通过使用使用不同的选项结构覆盖一个选项结构的相应部分优化集

Oldopts = Optimset(“显示”“通路”“TolX”1 e-6);newopts = optimset (“PlotFcns”“optimplotfval”“显示”'离开');选择= optimset (oldopts newopts);

这两个oldoptsnewopts设置值显示选项。检查一下newopts覆盖oldopts这个选项。

选项。显示
ans ='关'

检查其他两个选项的值。

选项。TolX
ans = 1.0000 e-06
options.plotfcns.
ANS ='OptimplotFval'

输入参数

全部折叠

优化求解器,指定为名称或函数句柄。返回的选项结构仅具有指定的解算器的非空条目。

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

例子:选项= optimset (@fminsearch)

数据类型:char|细绳|function_handle

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

例子:选项= OptimSet(OldOpts,'tolx',1e-6)

数据类型:结构体

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

例子:选择= optimset (oldopts newopts)

数据类型:结构体

名称-值对的观点

指定可选的逗号分隔的对名称,值论点。名称参数名和价值为对应值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

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

您只需输入足够的前导字符以唯一地定义选项名称。优化集忽略选项名称的情况(大写或小写)。

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

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

  • '最后'-只显示最终输出。

  • '离开'要么“没有”—无输出。

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

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

例子:选项= OptimSet('显示','iter')

数据类型:char|细绳

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

funvalcheck.可用于FMINBNDfminsearch.,Fzero.

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

数据类型:char|细绳

最大函数评估数,指定为逗号分隔的配对“MaxFunEvals”和一个正整数。

Maxfunevals.可用于FMINBNDfminsearch.

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

数据类型:单身的|双倍的

最大迭代次数,由逗号分隔对组成'maxiter'和一个正整数。

麦克斯特可用于FMINBNDfminsearch.

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

数据类型:单身的|双倍的

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

outputfcn.可用于FMINBNDfminsearch.,Fzero.

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

数据类型:char|细绳|细胞|function_handle

绘制函数,指定为逗号分隔的配对组成“PlotFcns”和函数名称或功能句柄。将多个绘图函数指定为功能句柄的单元格数组。每个迭代后,绘图函数运行,使您能够监视解决方案进程或停止迭代。有关更多信息,请参阅优化求解器Plot函数

内置的plot函数如下:

  • @optimplotx绘制当前点。

  • @OptimplotFval.绘制函数值。

  • @optimplotfunccount.绘制函数计数(不可用Fzero.).

PlotFcns可用于FMINBNDfminsearch.,Fzero.

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

数据类型:char|细绳|细胞|function_handle

函数值的终止容差,指定为逗号分隔对组成'tolfun'一个非负标量。当当前函数值与前一个值相差小于时,迭代结束塔尔芬,相对于初始函数值。看公差和停止标准

塔尔芬可用于fminsearch.只有。

例子:选项= OptimSet('TOLFUN',2E-6)

数据类型:单身的|双倍的

终止宽容x,当前点,指定为逗号分隔对组成“TolX”一个非负标量。当当前点与前一点的不同之处时迭代结束TolX,相对于…的大小x.看公差和停止标准

TolX适用于所有求解器。

例子:选项= OptimSet('TOLFUN',2E-6)

数据类型:单身的|双倍的

输出参数

全部折叠

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

限制

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

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

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

扩展能力

之前介绍过的R2006a