Main Content

optimoptionsoptimset 之间进行选择

以前,设置优化选项的推荐方法是使用 optimset。现在,一般建议是使用 optimoptions,下面列出一些注意事项。

optimset 仍然有效,它是为没有 Optimization Toolbox™ 许可证的求解器设置选项的唯一方法:fminbndfminsearchfzerolsqnonneg

注意:一些其他工具箱使用优化选项,并要求您传入使用 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: []

另请参阅

|

相关主题