在 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 ('trust-region'): (Other available algorithms: 'quasi-newton') Set properties: SpecifyObjectiveGradient: 1 Default properties: Algorithm: 'trust-region' CheckGradients: 0 Display: 'final' FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' FunctionTolerance: 1.0000e-06 HessianFcn: [] HessianMultiplyFcn: [] MaxFunctionEvaluations: '100*numberOfVariables' MaxIterations: 400 OptimalityTolerance: 1.0000e-06 OutputFcn: [] PlotFcn: [] StepTolerance: 1.0000e-06 SubproblemAlgorithm: 'cg' TypicalX: 'ones(numberOfVariables,1)' Show options not used by current Algorithm ('trust-region')
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: [] Simplex: [] SubproblemAlgorithm: [] TolCon: [] TolConSQP: [] TolGradCon: [] TolPCG: [] TolProjCG: [] TolProjCGAbs: [] TypicalX: [] UseParallel: []