在 optimoptions
和 optimset
之间进行选择
以前,设置优化选项的推荐方法是使用 optimset
。现在,一般建议是使用 optimoptions
,下面列出一些注意事项。
optimset
仍然有效,它是为没有 Optimization Toolbox™ 许可证的求解器设置选项的唯一方法:fminbnd
、fminsearch
、fzero
和 lsqnonneg
。
注意:一些其他工具箱使用优化选项,并要求您传入使用 optimset
而不是 optimoptions
创建的选项。请查阅工具箱的文档。
optimoptions
按求解器组织选项,其显示比 optimset
更集中、更全面:
仅创建和修改适用于求解器的选项
显示特定求解器/算法的选项和默认值
显示有关求解器选项和其他可用求解器算法的详细信息的链接
intlinprog
仅使用 optimoptions
选项。
创建选项的主要区别是:
对于
optimoptions
,将求解器名称作为第一个参量。
options = optimoptions(SolverName,Name,Value,...)
对于
optimset
,语法不包括求解器名称。
options = optimset(Name,Value,..)
在这两种情况下,您都可以使用圆点表示法来查询或更改选项。请参阅设置和更改优化选项和查看优化选项。
例如,将 optimoptions
的显示与 optimset
的显示进行比较。
options = optimoptions(@fminunc,'SpecifyObjectiveGradient',true)
options = fminunc options: Options used by current Algorithm ('quasi-newton'): (Other available algorithms: 'trust-region') Set properties: SpecifyObjectiveGradient: 1 Default properties: Algorithm: 'quasi-newton' Display: 'final' FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' HessianApproximation: 'bfgs' MaxFunctionEvaluations: '100*numberOfVariables' MaxIterations: 400 ObjectiveLimit: -1.0000e+20 OptimalityTolerance: 1.0000e-06 OutputFcn: [] PlotFcn: [] StepTolerance: 1.0000e-06 TypicalX: 'ones(numberOfVariables,1)' UseParallel: 0 Options not used by current Algorithm ('quasi-newton') Default properties: FunctionTolerance: 1.0000e-06 HessianFcn: [] HessianMultiplyFcn: [] SubproblemAlgorithm: 'cg'
options = optimset('GradObj','on')
options = struct with fields:
Display: []
MaxFunEvals: []
MaxIter: []
TolFun: []
TolX: []
FunValCheck: []
OutputFcn: []
PlotFcns: []
ActiveConstrTol: []
Algorithm: []
AlwaysHonorConstraints: []
DerivativeCheck: []
Diagnostics: []
DiffMaxChange: []
DiffMinChange: []
FinDiffRelStep: []
FinDiffType: []
GoalsExactAchieve: []
GradConstr: []
GradObj: 'on'
HessFcn: []
Hessian: []
HessMult: []
HessPattern: []
HessUpdate: []
InitBarrierParam: []
InitTrustRegionRadius: []
Jacobian: []
JacobMult: []
JacobPattern: []
LargeScale: []
MaxNodes: []
MaxPCGIter: []
MaxProjCGIter: []
MaxSQPIter: []
MaxTime: []
MeritFunction: []
MinAbsMax: []
NoStopIfFlatInfeas: []
ObjectiveLimit: []
PhaseOneTotalScaling: []
Preconditioner: []
PrecondBandWidth: []
RelLineSrchBnd: []
RelLineSrchBndDuration: []
ScaleProblem: []
SubproblemAlgorithm: []
TolCon: []
TolConSQP: []
TolGradCon: []
TolPCG: []
TolProjCG: []
TolProjCGAbs: []
TypicalX: []
UseParallel: []