optimoptions
创建优化选项
语法
描述
属性的默认选项集选项
= optimoptions (SolverName
)SolverName
解算器。
返回选项
= optimoptions (SolverName
,名称,值
)选项
使用一个或多个名称-值对参数设置指定的参数。
返回选项
= optimoptions (oldoptions
,名称,值
)oldoptions
使用指定的值更改命名参数。
属性的默认选项选项
= optimoptions (SolverName
,oldoptions
)SolverName
求解器,并将适用的选项复制到oldoptions
来选项
.
例子
创建默认选项
属性的默认选项fmincon
解算器。
选项= optimoptions(“fmincon”)
options = fmincon options:当前算法(' internal -point')使用的选项:(其他可用算法:'active-set', 'sqp', 'sqp-legacy', 'trust-region-reflective')设置属性:不设置选项。默认属性:Algorithm: ' internal -point' BarrierParamUpdate: 'monotone' CheckGradients: 0 constrainttolance: 1.0000 -06 Display: 'final' EnableFeasibilityMode: 0 FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' HessianApproximation: 'bfgs' HessianFcn: [] HessianMultiplyFcn: [] HonorBounds: 1 maxfunctionevaluation3000 MaxIterations: 1000 ObjectiveLimit: -1.0000e+20 OptimalityTolerance: 1.0000 -06 OutputFcn: [] PlotFcn: [] ScaleProblem:TypicalX: 'ones(numberOfVariables,1)' UseParallel: 0显示当前算法(' internal -point')未使用的选项
创建非默认选项
为以下选项设置fmincon
使用sqp
算法和最多1500次迭代。
选项= optimoptions(@fmincon,“算法”,“sqp”,“MaxIterations”, 1500)
options = fmincon options:当前使用的算法('sqp'):(其他可用算法:'active-set', ' internal -point', 'sqp-legacy', 'trust- area -reflective')设置属性:Algorithm: 'sqp' MaxIterations: 1500默认属性:CheckGradients: 0 constrainttolance: 1.0000 -06显示:'final' FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' maxfunctionevaluation: '100*numberOfVariables' ObjectiveLimit: -1.0000e+20 OptimalityTolerance:1.0000 -06 OutputFcn: [] PlotFcn: [] ScaleProblem: 0 specyconstraintgradient: 0 specyobjectivegradient: 0 StepTolerance: 1.0000 -06 TypicalX: 'ones(numberOfVariables,1)' UseParallel: 0显示当前算法('sqp')未使用的选项
更新选项
用新值更新现有选项。
设置lsqnonlin
的解算器levenberg-marquardt
算法和最多1500个函数求值
Oldoptions = optimoptions(@lsqnonlin,“算法”,“levenberg-marquardt”,...“MaxFunctionEvaluations”, 1500)
oldoptions = lsqnonlin options:当前使用的选项Algorithm ('levenberg-marquardt'):(其他可用算法:'trust- area -reflective')设置属性:Algorithm: 'levenberg-marquardt' maxfunctionwarnings: 1500默认属性:CheckGradients: 0显示:'final' FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' FunctionTolerance: 1.0000 -06 MaxIterations: 400 OutputFcn: [] PlotFcn: [] specyobjectivegradient: 0 StepTolerance: 1.0000 -06 TypicalX:显示当前算法未使用的选项('levenberg-marquardt')
增加MaxFunctionEvaluations
到2000年。
选项= optimoptions(oldoptions,“MaxFunctionEvaluations”, 2000)
options = lsqnonlin options:当前使用的选项Algorithm ('levenberg-marquardt'):(其他可用算法:'trust- area -reflective')设置属性:Algorithm: 'levenberg-marquardt' maxfunctionwarnings: 2000默认属性:CheckGradients: 0显示:'final' FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' FunctionTolerance: 1.0000 -06 MaxIterations: 400 OutputFcn: [] PlotFcn: [] specyobjectivegradient: 0 StepTolerance: 1.0000 -06 TypicalX:显示当前算法未使用的选项('levenberg-marquardt')
使用点符号更新选项
使用点表示法更新现有选项的新值。
设置lsqnonlin
的解算器levenberg-marquardt
算法和最多1500个函数求值
选项= optimoptions(@lsqnonlin,“算法”,“levenberg-marquardt”,...“MaxFunctionEvaluations”, 1500)
options = lsqnonlin options:当前使用的选项Algorithm ('levenberg-marquardt'):(其他可用算法:'trust- area -reflective')设置属性:Algorithm: 'levenberg-marquardt' maxfunctionwarnings: 1500默认属性:CheckGradients: 0显示:'final' FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' FunctionTolerance: 1.0000 -06 MaxIterations: 400 OutputFcn: [] PlotFcn: [] specyobjectivegradient: 0 StepTolerance: 1.0000 -06 TypicalX:显示当前算法未使用的选项('levenberg-marquardt')
增加MaxFunctionEvaluations
到2000,用点表示法。
选项。maxfunctionassessments = 2000
options = lsqnonlin options:当前使用的选项Algorithm ('levenberg-marquardt'):(其他可用算法:'trust- area -reflective')设置属性:Algorithm: 'levenberg-marquardt' maxfunctionwarnings: 2000默认属性:CheckGradients: 0显示:'final' FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' FunctionTolerance: 1.0000 -06 MaxIterations: 400 OutputFcn: [] PlotFcn: [] specyobjectivegradient: 0 StepTolerance: 1.0000 -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')设置属性:Algorithm: 'sqp' MaxIterations: 1500默认属性:CheckGradients: 0 constrainttolance: 1.0000 -06显示:'final' FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' maxfunctionevaluation: '100*numberOfVariables' ObjectiveLimit: -1.0000e+20 OptimalityTolerance:1.0000 -06 OutputFcn: [] PlotFcn: [] ScaleProblem: 0 specyconstraintgradient: 0 specyobjectivegradient: 0 StepTolerance: 1.0000 -06 TypicalX: 'ones(numberOfVariables,1)' UseParallel: 0显示当前算法('sqp')未使用的选项
将适用的选项转移到fminunc
解算器。
Options = optimoptions(@fminunc,oldoptions)
options = fminunc options:当前使用的选项Algorithm('准牛顿'):(其他可用算法:'trust-region')设置属性:CheckGradients: 0 FiniteDifferenceType: 'forward' MaxIterations: 1500 OptimalityTolerance: 1.0000 -06 PlotFcn: [] featyobjectivegradient: 0 StepTolerance: 1.0000 -06默认属性:Algorithm: '准牛顿'显示:'final' FiniteDifferenceStepSize: 'sqrt(eps)' maxfunctionements: '100*numberOfVariables' ObjectiveLimit: -1.0000e+20 OutputFcn:[] UseParallel: 0显示当前算法未使用的选项('准牛顿')
算法选项不会转移到fminunc
因为“sqp”
不是有效的算法选项fminunc
.
查找优化问题的解算器和默认选项
创建一个优化问题,并找到默认的求解器和选项。
rng默认的X = optimvar(“x”3,下界的, 0);Expr = x'*(eye(3) + randn(3))*x - randn(1,3)*x;问题=优化问题(“目标”, expr);选项= optimoptions(prob)
options = quadprog options:当前算法(' internal -point-convex')使用的选项:(其他可用算法:'active-set', 'trust-region-reflective')设置属性:不设置选项。默认属性:Algorithm: ' internal -point-convex' ConstraintTolerance: 1.0000 -08 Display: 'final' LinearSolver: 'auto' MaxIterations: 200 OptimalityTolerance: 1.0000 -08 StepTolerance: 1.0000 -12显示当前算法未使用的选项(' internal -point-convex')
默认的解算器是quadprog
.
将选项设置为使用迭代显示。找到解决方案。
选项。显示=“通路”;Sol =解决(问题,“选项”、选择);
用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
对象。创建概率
使用基于问题的优化工作流或求解方程的基于问题的工作流程.
使用的语法概率
使您能够确定问题的默认解算器,并修改算法或其他选项。
例子:prob = optimproblem('Objective',myobj)
,在那里myobj
是一个优化表达式
名称-值参数
的可选逗号分隔对名称,值
参数。的名字
参数名称和价值
对应的值。的名字
必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
optimoptions (@fmincon‘显示’,‘iter’,‘FunctionTolerance’,1平台以及)
集fmincon
选项具有迭代显示和FunctionTolerance
的1平台以及
.
对于相关的名称-值对参数,请参考求解器的选项表:
输出参数
选项
-优化选项
选择对象
的优化选项SolverName
作为选项对象返回。
选择功能
实时编辑任务
的优化实时编辑器任务允许您可视化地设置选项。有关示例,请参见用fmincon求解器优化实时编辑器任务.
扩展功能
Abrir比如
Tiene una versión modificada de este ejemplo。¿Desea abrir este ejemplo con sus modificaciones?
MATLAB突击队
Ha hecho clic en unenlace que对应一个este commando de MATLAB:
弹射突击队introduciéndolo en la ventana de commandos de MATLAB。Los navegadores web no permission comandos de MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。