ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

optimoptions または optimset の選択

以前は、オプションの設定には optimset の使用が推奨されていました。現在は、optimoptions の使用が一般に推奨されていますが、以下に挙げるいくつかの注意点があります。

Optimization Toolbox™ のライセンスがなくても使用可能なソルバーにオプションを設定する唯一の方法として、optimset を引き続き使用できます。こうしたソルバーには、fminbndfminsearchfzero および lsqnonneg があります。

メモ

一部の他のツールボックスでは最適化オプションが使用され、optimoptions ではなく optimset を使用して作成したオプションを渡さなければなりません。ツールボックスのドキュメンテーションを確認してください。

optimoptions ではソルバー別にオプションが整理され、optimset よりも焦点を絞った総合的な表示が提示されます。

  • ソルバーに妥当するオプションのみを作成および変更

  • 特定のソルバー/アルゴリズムに対するオプションの選択肢と既定値を表示

  • ソルバー オプションや他の使用可能なソルバー アルゴリズムに関する詳細情報へのリンクを表示

intlinprogoptimoptions オプションのみを使用します。

オプションの作成における主な違いは、以下のとおりです。

  • optimoptions では、ソルバー名を最初の引数として含める。

    options = optimoptions(SolverName,Name,Value,...)
  • optimset では、構文にソルバー名が含まれない。

    options = optimset(Name,Value,...)

どちらの場合も、ドット表記を使用してオプションのクエリや変更ができます。詳細は、オプションの設定と変更表示オプションを参照してください。

たとえば、optimoptionsoptimset の表示を比較してみましょう。

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: []

関連するトピック