主要内容

optimoptions

创建优化选项

描述

例子

选项= optimoptions (SolverName属性的默认选项集SolverName解算器。

例子

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

例子

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

例子

选项= optimoptions (SolverNameoldoptions属性的默认选项SolverName求解器,并将适用的选项复制到oldoptions选项

例子

选项= optimoptions (概率属性的默认选项集概率优化问题或方程问题。

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

例子

全部折叠

属性的默认选项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

输入参数

全部折叠

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

例子:“fmincon”

例子:@fmincon

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

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

例子:Oldoptions = optimoptions(@fminunc)

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

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

例子:prob = optimproblem('Objective',myobj),在那里myobj是一个优化表达式

名称-值参数

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

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

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

输出参数

全部折叠

的优化选项SolverName作为选项对象返回。

选择功能

实时编辑任务

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

扩展功能

在R2013a中引入