optimoptions
创建优化选项
语法
描述
控件的一组默认选项选项
= optimoptions (SolverName
)SolverName
解算器。
返回选项
= optimoptions (SolverName
,名称,值
)选项
使用一个或多个名称-值对参数设置指定的参数。
的副本。选项
= optimoptions (oldoptions
,名称,值
)oldoptions
使用指定的值更改命名参数。
控件的默认选项选项
= optimoptions (SolverName
,oldoptions
)SolverName
,并将适用的选项复制到oldoptions
来选项
.
例子
创建默认选项
控件的默认选项fmincon
解算器。
选择= optimoptions (“fmincon”)
options = fmincon options:当前算法('interior-point')使用的选项:(其他可用算法:'active-set', 'sqp', 'sqp-legacy', 'trust-region- reflection ')设置属性:没有设置选项。默认属性:算法:'interior-point' BarrierParamUpdate: 'monotone' CheckGradients: 0 constraintttolerance: 1.0000e-06 Display: 'final' enableavailabilitymode: 0 FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' HessianApproximation: 'bfgs' HessianFcn: [] HessianMultiplyFcn: [] HonorBounds: 1 MaxFunctionEvaluations: 3000 MaxIterations: 1000 ObjectiveLimit: -1.0000e+20 OptimalityTolerance: 1.0000e-06 OutputFcn: [] PlotFcn: [] ScaleProblem:subproblemalgorithy: 'factorization' TypicalX: 'ones(numberOfVariables,1)' UseParallel: 0显示当前算法未使用的选项('interior-point')
创建默认的选项
设置选项fmincon
使用sqp
算法和最多1500次迭代。
选择= optimoptions (@fmincon,“算法”,“sqp”,“MaxIterations”, 1500)
options = fmincon options:当前算法('sqp')使用的选项:(其他可用算法:'active-set', ' internal -point', 'sqp-legacy', 'trust- area -reflective')设置属性:算法:'sqp' MaxIterations: 1500默认属性:CheckGradients: 0 ConstraintTolerance: 1.0000e-06显示:'final' FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' MaxFunctionEvaluations: '100*numberOfVariables' ObjectiveLimit: -1.0000e+20 OptimalityTolerance:1.0000e-06 OutputFcn: [] PlotFcn: [] ScaleProblem: 0 specificyconstraintgradient: 0 specificyobjectivegradient: 0 StepTolerance: 1.0000e-06 TypicalX: 'ones(numberOfVariables,1)' UseParallel: 0显示当前算法('sqp')未使用的选项
更新选项
用新值更新现有选项。
设置选项lsqnonlin
的求解器levenberg-marquardt
算法和最多1500个函数的计算
oldoptions = optimoptions (@lsqnonlin,“算法”,“levenberg-marquardt”,...“MaxFunctionEvaluations”, 1500)
oldoptions = lsqnonlin options:当前算法('levenberg-marquardt')使用的选项:(其他可用算法:'trust-region-reflective')设置属性:算法:'levenberg-marquardt' MaxFunctionEvaluations: 1500默认属性:CheckGradients: 0显示:'final' FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' FunctionTolerance: 1.0000e-06 MaxIterations: 400 OutputFcn: [] PlotFcn: [] specyobjectivegradient: 0 StepTolerance: 1.0000e-06 TypicalX:显示当前算法未使用的选项('levenberg-marquardt')
增加MaxFunctionEvaluations
到2000年。
选择= optimoptions (oldoptions,“MaxFunctionEvaluations”, 2000)
options = lsqnonlin options:当前算法('levenberg-marquardt')使用的选项:(其他可用算法:'trust-region-reflective')设置属性:算法:'levenberg-marquardt' MaxFunctionEvaluations: 2000默认属性:CheckGradients: 0显示:'final' FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' FunctionTolerance: 1.0000e-06 MaxIterations: 400 OutputFcn: [] PlotFcn: [] specyobjectivegradient: 0 StepTolerance: 1.0000e-06 TypicalX:显示当前算法未使用的选项('levenberg-marquardt')
使用点符号来更新选项
使用点表示法用新值更新现有选项。
设置选项lsqnonlin
的求解器levenberg-marquardt
算法和最多1500个函数的计算
选择= optimoptions (@lsqnonlin,“算法”,“levenberg-marquardt”,...“MaxFunctionEvaluations”, 1500)
options = lsqnonlin options:当前算法('levenberg-marquardt')使用的选项:(其他可用算法:'trust-region-reflective')设置属性:算法:'levenberg-marquardt' MaxFunctionEvaluations: 1500默认属性:CheckGradients: 0显示:'final' FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' FunctionTolerance: 1.0000e-06 MaxIterations: 400 OutputFcn: [] PlotFcn: [] specyobjectivegradient: 0 StepTolerance: 1.0000e-06 TypicalX:显示当前算法未使用的选项('levenberg-marquardt')
增加MaxFunctionEvaluations
用点表示法到2000年。
选项。MaxFunctionEvaluations = 2000
options = lsqnonlin options:当前算法('levenberg-marquardt')使用的选项:(其他可用算法:'trust-region-reflective')设置属性:算法:'levenberg-marquardt' MaxFunctionEvaluations: 2000默认属性:CheckGradients: 0显示:'final' FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' FunctionTolerance: 1.0000e-06 MaxIterations: 400 OutputFcn: [] PlotFcn: [] specyobjectivegradient: 0 StepTolerance: 1.0000e-06 TypicalX:显示当前算法未使用的选项('levenberg-marquardt')
将选项复制到另一个求解器
控件的非默认选项fmincon
选项的解算器fminunc
解算器。
设置选项fmincon
使用SQP算法,最多迭代1500次。
oldoptions = optimoptions (@fmincon,“算法”,“sqp”,“MaxIterations”, 1500)
oldoptions = fmincon options:当前算法('sqp')使用的选项:(其他可用算法:'active-set', ' internal -point', 'sqp-legacy', 'trust- area -reflective')设置属性:算法:'sqp' MaxIterations: 1500默认属性:CheckGradients: 0 ConstraintTolerance: 1.0000e-06显示:'final' FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' MaxFunctionEvaluations: '100*numberOfVariables' ObjectiveLimit: -1.0000e+20 OptimalityTolerance:1.0000e-06 OutputFcn: [] PlotFcn: [] ScaleProblem: 0 specificyconstraintgradient: 0 specificyobjectivegradient: 0 StepTolerance: 1.0000e-06 TypicalX: 'ones(numberOfVariables,1)' UseParallel: 0显示当前算法('sqp')未使用的选项
将适用的选项转移到fminunc
解算器。
选择= optimoptions (@fminunc oldoptions)
options = fminunc options:当前算法('准牛顿')使用的选项:(其他可用算法:'trust-region')设置属性:CheckGradients: 0 FiniteDifferenceType: 'forward' MaxIterations: 1500 OptimalityTolerance: 1.0000e-06 PlotFcn:[]规格objectivegradient: 0 StepTolerance: 1.0000e-06默认属性:算法:'准牛顿'显示:'final' FiniteDifferenceStepSize: 'sqrt(eps)' HessianApproximation: 'bfgs' MaxFunctionEvaluations:'100*numberOfVariables' ObjectiveLimit: -1.0000e+20 OutputFcn: [] TypicalX: 'ones(numberOfVariables,1)' UseParallel: 0显示当前算法未使用的选项('准牛顿')
算法选项不转移到fminunc
因为“sqp”
不是有效的算法选项fminunc
.
寻找优化问题的求解器和默认选项
创建一个优化问题,并找到默认的求解器和选项。
rng默认的x = optimvar (“x”3,下界的, 0);Expr = x'*(eye(3) + randn(3))*x - randn(1,3)*x;概率= optimproblem (“目标”, expr);选项= optimoptions(概率)
options = quadprog options:当前算法(' internal -point-凸')使用的选项:(其他可用算法:'active-set', 'trust-region- reflection ')设置属性:没有设置选项。默认属性:算法:' internal -point-凸' constraintolerance: 1.0000e-08显示:'final' LinearSolver: 'auto' MaxIterations: 200 OptimalityTolerance: 1.0000e-08 StepTolerance: 1.0000e-12显示当前算法未使用的选项(' internal -point-凸')
默认的求解器是quadprog
.
设置选项以使用迭代显示。找到解决方案。
选项。显示=“通路”;索尔=解决(概率,“选项”、选择);
用quadprog解决问题。你的黑森不是对称的。重置H = (H + H) / 2。Iter Fval原始Infeas双Infeas互补性0 2.018911e+00 0.000000e+00 2.757660e+00 6.535839e-01 1 -2.170204e+00 0.000000e+00 8.881784e-16 2.586177e-01 2 -3.405808e+00 0.000000e+00 8.881784e-16 2.244054e-03 3 -3.438788e+00 0.000000e+00 3.356690e-16 7.261144e-09发现满足约束的最小值。由于目标函数在可行方向上不减少,优化完成,在最优性公差的值内,约束满足在约束公差的值内。
sol.x
ans =3×11.6035 0.0000 0.8029
输入参数
SolverName
- - - - - -解算器名称
特征向量|字符串|函数处理
求解器名称,指定为字符向量、字符串或函数句柄。
例子:“fmincon”
例子:@fmincon
数据类型:字符
|function_handle
|字符串
oldoptions
- - - - - -选择创建optimoptions
选择对象
创建的选项。optimoptions
函数,指定为选项对象。
例子:oldoptions = optimoptions (@fminunc)
概率
- - - - - -问题的对象
OptimizationProblem
对象|EquationProblem
对象
问题对象,指定为OptimizationProblem
对象或一个EquationProblem
对象。创建概率
使用具体问题具体分析优化工作流程或基于问题的解方程工作流.
语法的使用概率
使您能够确定问题的默认求解器,并修改算法或其他选项。
例子:概率= optimproblem(“目标”,myobj)
,在那里myobj
是一个优化表达式
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。
在R2021a之前,名称和值之间用逗号隔开,并括起来的名字
在报价。
例子:optimoptions (@fmincon‘显示’,‘iter’,‘FunctionTolerance’,1平台以及)
集fmincon
选项有迭代显示和FunctionTolerance
的1平台以及
.
对于相关的名称-值对参数,请参考求解器的选项表:
输出参数
选项
——优化选项
选择对象
的优化选项SolverName
求解器,作为选项对象返回。
选择功能
住编辑任务
的优化Live Editor任务允许您可视化地设置选项。示例请参见用fmincon求解器优化实时编辑器任务.
扩展功能
版本历史
介绍了R2013a
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。