Выбор между 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: []

Похожие темы