主要内容

优化选择

创建优化选项

描述

例子

选项= optimoptions (solvername.的)的默认选项集solvername.求解器。

例子

选项= optimoptions (solvername.名称,值的)回报选项使用一个或多个名称值对参数设置指定的参数。

例子

选项= optimoptions (oldoptions.名称,值的)返回一份副本oldoptions.用指定的值更改命名参数。

例子

选项= optimoptions (solvername.oldoptions.的)返回默认选项solvername.求解器,并复制适用的选项oldoptions.选项

例子

选项= optimoptions (概率的)的默认选项集概率优化问题或等式问题。

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

例子

全部折叠

的默认选项粉刺求解器。

选择= optimoptions (“fmincon”的)
options = fmincon options: options used by current Algorithm (' internal -point'):(其他可用算法:'active-set', 'sqp', 'sqp-legacy', 'trust-region-reflective')默认属性:算法:“内点”BarrierParamUpdate:“单调”CheckGradients: 0 ConstraintTolerance: 1.0000 e-06显示:“最终”EnableFeasibilityMode: 0 FiniteDifferenceStepSize:“sqrt (eps)”FiniteDifferenceType:“向前”HessianApproximation:“蓄热”HessianFcn: [] HessianMultiplyFcn: [] HonorBounds: 1 MaxFunctionEvaluations:3000 MaxIterations: 1000 ObjectiveLimit: -1.0000e+20 OptimalityTolerance: 1.0000e-06 OutputFcn: [] PlotFcn: [] ScaleProblem: 0 specificconstraintgradient: 0 specificobjectivegradient: 0 StepTolerance: 1.0000e-10 SubproblemAlgorithm: '因数分解' TypicalX: 'ones(numberOfVariables,1)' UseParallel:显示当前算法未使用的选项('interior-point')

设置选项粉刺使用sqp算法,最多1500次迭代。

选项= Optimoptions(@Fmincon,“算法”“sqp”'发光', 1500)
设置属性:Algorithm: 'sqp' MaxIterations: 1500默认属性:CheckGradients: 0 constraintttolerance: 1.0000e-06 Display: 'final' FiniteDifferenceStepSize:maxfunction evaluates: '100*numberOfVariables' objectilimit: -1.0000e+20 OptimalityTolerance: 1.0000e-06 OutputFcn: [] PlotFcn: [] ScaleProblem: 0 specificconstraintgradient: 0 specificobjectivegradient: 0 StepTolerance: 1.0000e-06 TypicalX: 'ones(numberOfVariables,1)' UseParallel:显示当前算法未使用的选项('sqp')

用新值更新现有选项。

lsqnonlin.求解器的使用Levenberg-Marquardt算法和最多1500个函数计算

oldoptions = optimoptions (@lsqnonlin,“算法”'levenberg-marquardt'......'maxfunctionevaluations', 1500)
oldoptions = lsqnonlin options: options used by current Algorithm ('levenberg-marquardt'):(其他可用算法:' trusted -region-reflective')设置属性:Algorithm: 'levenberg-marquardt' maxfunctionevalues: 1500默认属性:CheckGradients: 0显示:'final' FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType:'forward' FunctionTolerance: 1.0000e-06 MaxIterations: 400 OutputFcn: [] PlotFcn: [] speciyobjectivegradient: 0 StepTolerance: 1.0000e-06 TypicalX: 'ones(numberOfVariables,1)' UseParallel: 0显示当前算法未使用的选项(' levenbermarquardt ')

增加MaxFunctionEvaluations.到2000年。

选择= optimoptions (oldoptions,'maxfunctionevaluations', 2000)
选项= LSQNONLIN选项:当前算法('Levenberg-Marquardt')使用的选项:(其他可用算法:'信任区域反光')设置属性:算法:'Levenberg-Marquardt'MaxFunctionevaluations:2000默认属性:赛程:0显示:'最终'finitedifferencestepsize:'sqrt(eps)'finitedifferenceType:'转发'functionTolerance:1.0000E-06最大值:400 OutputFCN:[] PlotFCN:[] SpecifyObjectiveGRadient:0 Steption:1.0000E-06 Typicalx:'(NumberOfvarialbles,1)'使用反应性:0显示当前算法未使用的选项('Levenberg-Marquardt')

使用点表示法用新值更新现有选项。

lsqnonlin.求解器的使用Levenberg-Marquardt算法和最多1500个函数计算

选项= Optimoptions(@lsqnonlin,“算法”'levenberg-marquardt'......'maxfunctionevaluations', 1500)
选项= LSQNONLIN选项:当前算法('Levenberg-Marquardt')使用的选项:(其他可用算法:'信任区域反光')设置属性:算法:'Levenberg-Marquardt'MaxFunctionevaluations:1500默认属性:赛程:0显示:'最终'finitedifferencestepsize:'sqrt(eps)'finitedifferenceType:'转发'functionTolerance:1.0000E-06最大值:400 OutputFCN:[] PlotFCN:[] SpecifyObjectiveGRadient:0 Steption:1.0000E-06 Typicalx:'(NumberOfvarialbles,1)'使用反应性:0显示当前算法未使用的选项('Levenberg-Marquardt')

增加MaxFunctionEvaluations.到2000年。

选项。MaxFunctionEvaluations = 2000
选项= LSQNONLIN选项:当前算法('Levenberg-Marquardt')使用的选项:(其他可用算法:'信任区域反光')设置属性:算法:'Levenberg-Marquardt'MaxFunctionevaluations:2000默认属性:赛程:0显示:'最终'finitedifferencestepsize:'sqrt(eps)'finitedifferenceType:'转发'functionTolerance:1.0000E-06最大值:400 OutputFCN:[] PlotFCN:[] SpecifyObjectiveGRadient:0 Steption:1.0000E-06 Typicalx:'(NumberOfvarialbles,1)'使用反应性:0显示当前算法未使用的选项('Levenberg-Marquardt')

转移非菲德劳特选项粉刺解决方案的选项Fminunc.求解器。

设置选项粉刺使用SQP算法,最多1500次迭代。

oldoptions = optimoptions (@fmincon,“算法”“sqp”'发光', 1500)
oldoptions = fmincon options: options used by current Algorithm ('sqp'):(其他可用算法:'active-set', ' internal -point', 'sqp-legacy', 'trust-region-reflective')设置属性:算法:'sqp' MaxIterations: 1500默认属性:CheckGradients: 0 constraintolerance: 1.0000e-06 Display: 'final' FiniteDifferenceStepSize:maxfunction evaluates: '100*numberOfVariables' objectilimit: -1.0000e+20 OptimalityTolerance: 1.0000e-06 OutputFcn: [] PlotFcn: [] ScaleProblem: 0 specificconstraintgradient: 0 specificobjectivegradient: 0 StepTolerance: 1.0000e-06 TypicalX: 'ones(numberOfVariables,1)' UseParallel:显示当前算法未使用的选项('sqp')

将适用的选择转移到Fminunc.求解器。

选项= Optimoptions(@ Fminunc,OldOptions)
选项= fminunc选项:当前算法使用的选项('quasi-newton'):(其他可用算法:'trust-region')设置属性:赛程检查:[] specifyobjectivegradient:0 steptolerance:1.0000E-06默认属性:算法:'准牛顿'显示:'Final'finitedifferencestepsize:'sqrt(eps)'maxFunctionevaluations:'100 * numberofvariables'objectivelimit:-1.0000e + 20 outputfcn:[]典型x:'(numberofvariables,1)'使用指平行:0显示当前算法未使用的选项('quasi-newton')

算法选项没有转移到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: options by current Algorithm ('interior-point-凸'):(其他可用算法:'active-set', 'trust-region-reflective')设置属性:没有设置选项。默认属性:Algorithm: ' inner -point-凸' constraintolerance: 1.0000e-08 Display: 'final' LinearSolver: 'auto' MaxIterations: 200 OptimalityTolerance: 1.0000e-08 StepTolerance: 1.0000e-12显示当前算法(' inner -point-凸')未使用的选项

默认求解器是quadprog

设置使用迭代显示的选项。找到解决方案。

选项。显示=“通路”;索尔=解决(概率,“选项”、选择);
用四轴飞行器解决问题。你的Hessian不是对称的。重置H = (H + H) / 2。Iter Fval Primal infas Dual infas complement 0 2.018911e+00 0.000000e+00 2.757660e+00 6.535839e-01 1 -2.170204e+00 0.000000e+00 8.88178e -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.|字符串

使用的选项优化选择函数,指定为选项对象。

例子:oldoptions = optimoptions (@fminunc)

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

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

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

名称 - 值参数

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

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

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

输出参数

全部折叠

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

选择功能

实时编辑任务

优化Live Editor任务允许您在视觉上设置选项。例如,看到使用Fmincon Solver优化Live Editor任务

扩展能力

介绍了R2013a