主要内容

optimoptions

创建优化选项

描述

例子

选项= optimoptions (SolverName控件的一组默认选项SolverName解算器。

例子

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

例子

选项= optimoptions (oldoptions名称,值的副本。oldoptions使用指定的值更改命名参数。

例子

选项= optimoptions (SolverNameoldoptions控件的默认选项SolverName,并将适用的选项复制到oldoptions选项

例子

选项= optimoptions (概率控件的一组默认选项概率最优化问题或方程问题。

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

例子

全部折叠

控件的默认选项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

输入参数

全部折叠

求解器名称,指定为字符向量、字符串或函数句柄。

例子:“fmincon”

例子:@fmincon

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

创建的选项。optimoptions函数,指定为选项对象。

例子:oldoptions = optimoptions (@fminunc)

问题对象,指定为OptimizationProblem对象或一个EquationProblem对象。创建概率使用具体问题具体分析优化工作流程基于问题的解方程工作流

语法的使用概率使您能够确定问题的默认求解器,并修改算法或其他选项。

例子:概率= optimproblem(“目标”,myobj),在那里myobj是一个优化表达式

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

例子:optimoptions (@fmincon‘显示’,‘iter’,‘FunctionTolerance’,1平台以及)fmincon选项有迭代显示和FunctionTolerance1平台以及

对于相关的名称-值对参数,请参考求解器的选项表:

输出参数

全部折叠

的优化选项SolverName求解器,作为选项对象返回。

选择功能

住编辑任务

优化Live Editor任务允许您可视化地设置选项。示例请参见用fmincon求解器优化实时编辑器任务

扩展功能

版本历史

介绍了R2013a

Baidu
map