exponenta event banner

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

Связанные темы