optimset
创建或修改优化选项结构
语法
描述
optimset
(不带输入或输出参数)显示参数及其有效值的完整列表。
(不带输入参数)创建一个选项结构选项
= optimset选项
所有参数设置在哪里[]
.
例子
创建默认的选项
设置选项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 '
输入参数
optimfun
- - - - - -优化解算器
的名字|函数处理
优化求解器,指定为名称或函数句柄。返回的选项结构只有针对指定求解器的非空项。
例子:选择= optimset(“fzero”)
例子:选项= optimset (@fminsearch)
数据类型:字符
|字符串
|function_handle
oldopts
- - - - - -以前的优化选择
结构
以前的优化选项,指定为结构。输出选项
和oldopts
,除指定参数外。
例子:选择= optimset (e-6 oldopts ' TolX ', 1)
数据类型:结构体
newopts
- - - - - -新的优化选项
结构
新的优化选项,指定为结构。输出选项
和newopts
的非空参数oldopts
里面是空的newopts
.
例子:选择= optimset (oldopts newopts)
数据类型:结构体
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。
在R2021a之前,名称和值之间用逗号隔开,并括起来的名字
在报价。
例子:选择= optimset (TolX, 1 e-6 PlotFcns, @optimplotfval)
您只需要输入足够的前导字符来惟一地定义选项名称。optimset
忽略选项名称的大小写(大写或小写)。
显示
- - - - - -水平显示
“通知”
(默认)|“最后一次”
|“关闭”
|“没有”
|“通路”
显示级别,指定为逗号分隔的一对,由' display '和以下值之一组成:
“通知”
-仅当函数不收敛时显示输出。“最后一次”
-只显示最终输出。“关闭”
或“没有”
—无输出。“通路”
-显示每次迭代的输出(不能用于lsqnonneg
).
显示
可用于所有优化求解器。
例子:选择= optimset(“显示”,“iter”)
数据类型:字符
|字符串
FunValCheck
- - - - - -标志来检查函数值是否有效
“关闭”
(默认)|“上”
标志来检查函数值是否有效,指定为逗号分隔的对,由“FunValCheck”
和价值“关闭”
或“上”
.当值为“上”
,当目标函数返回的值是复数或南
.
FunValCheck
可用于fminbnd
,fminsearch
,fzero
.
例子:选择= optimset(“FunValCheck”,“上”)
数据类型:字符
|字符串
MaxFunEvals
- - - - - -函数求值的最大次数
500
为fminbnd
,200 *(数量的变量)
为fminsearch
(默认)|正整数
函数求值的最大数目,指定为逗号分隔的对,由“MaxFunEvals”
一个正整数。
MaxFunEvals
可用于fminbnd
而且fminsearch
.
例子:选择= optimset (MaxFunEvals, 2 e3)
数据类型:单
|双
麦克斯特
- - - - - -最大迭代次数
500
为fminbnd
,200 *(数量的变量)
为fminsearch
(默认)|正整数
最大迭代次数,指定为逗号分隔的对,由“麦克斯特”
一个正整数。
麦克斯特
可用于fminbnd
而且fminsearch
.
例子:选择= optimset(“麦克斯特”,2 e3)
数据类型:单
|双
OutputFcn
- - - - - -输出函数
[]
(默认)|函数名|函数处理|函数句柄的单元格数组
输出函数,指定为逗号分隔的对,由“OutputFcn”
和函数名或函数句柄。指定多个输出函数作为函数句柄的单元格数组。输出函数在每次迭代之后运行,使您能够监视解决方案过程或停止迭代。有关更多信息,请参见优化求解器输出函数.
OutputFcn
可用于fminbnd
,fminsearch
,fzero
.
例子:选择= optimset (OutputFcn, {@outfun1, @outfun2})
数据类型:字符
|字符串
|细胞
|function_handle
PlotFcns
- - - - - -绘制函数
[]
(默认)|函数名|函数处理|函数句柄的单元格数组
Plot函数,指定为逗号分隔的对,由“PlotFcns”
和函数名或函数句柄。指定多个plot函数作为函数句柄的单元格数组。plot函数在每次迭代之后运行,使您能够监视解决方案过程或停止迭代。有关更多信息,请参见优化求解器绘图函数.
内置的plot函数如下:
@optimplotx
绘制当前点。@optimplotfval
绘制函数值。@optimplotfunccount
绘制函数计数(不能用于fzero
).
PlotFcns
可用于fminbnd
,fminsearch
,fzero
.
例子:选择= optimset(“PlotFcns”、“optimplotfval”)
数据类型:字符
|字符串
|细胞
|function_handle
TolFun
- - - - - -函数值的终止公差
1的军医
(默认)|负的标量
函数值的终止公差,指定为逗号分隔的对,由“TolFun”
一个非负的标量。当当前函数值与前一个函数值相差小于时,迭代结束TolFun
,相对于初始函数值。看到公差和停止标准.
TolFun
可用于fminsearch
只有。
例子:选择= optimset (TolFun, 2 e-6)
数据类型:单
|双
TolX
- - - - - -终止上公差x
,当前点
1的军医
为fminbnd
而且fminsearch
,每股收益
为fzero
,10 * eps *规范(c, 1) *长度(c)
为lsqnonneg
(默认)|负的标量
终止上公差x
为当前点,指定为逗号分隔的对,由“TolX”
一个非负的标量。当当前点与前一个点的差小于时,迭代就结束了TolX
,相对于的大小x
.看到公差和停止标准.
TolX
适用于所有求解器。
例子:选择= optimset (TolFun, 2 e-6)
数据类型:单
|双
输出参数
选项
——优化选项
结构
优化选项,作为结构返回。未设置的参数值为[]
,这将导致求解器使用这些参数的默认值。
限制
optimset
设置选项的四个MATLAB®优化解决方案:fminbnd
,fminsearch
,fzero
,lsqnonneg
.设置“优化工具箱™”或“优化工具箱”的选项全局优化工具箱求解器,推荐函数为optimoptions
(优化工具箱).optimset
无法为某些优化工具箱求解器设置选项,例如intlinprog
.使用optimoptions
(优化工具箱)代替。optimset
不能设置大多数选项全局优化工具箱解决者。使用optimoptions
(优化工具箱)代替。
扩展功能
C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
代码生成不支持没有输入或输出参数的语法:
optimset
函数中指定
选项
必须支持代码生成。输入参数
optimfun
必须是代码生成所支持的函数。选项结构的字段
oldopts
必须是固定大小的字段。代码生成忽略
显示
选择。代码生成不支持由优化工具箱创建的选项结构中的附加选项
optimset
函数。如果输入选项结构包含额外的“优化工具箱”选项,则输出结构不包含它们。
线程环境
在后台使用MATLAB®运行代码backgroundPool
或使用并行计算工具箱™加速代码ThreadPool
.
这个函数完全支持基于线程的环境。有关更多信息,请参见在线程环境中运行MATLAB函数.
版本历史
之前介绍过的R2006a
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。