ドキュメンテーション

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

optimoptions

最適化オプションの作成

構文

  • options = optimoptions(SolverName)
  • options = optimoptions(SolverName,Name,Value)
  • options = optimoptions(oldoptions,Name,Value)
  • options = optimoptions(SolverName,oldoptions)

説明

options = optimoptions(SolverName)SolverName ソルバーの一連の既定オプションを返します。

options = optimoptions(SolverName,Name,Value) は、名前付きパラメーターを指定値で変更してオプションを返します。

options = optimoptions(oldoptions,Name,Value) は、名前付きパラメーターを指定値で変更して oldoptions のコピーを返します。

options = optimoptions(SolverName,oldoptions)SolverName ソルバーの既定オプションを返し、oldoptions の該当するオプションを options にコピーします。

すべて折りたたむ

既定のオプションの作成

fmincon ソルバーの既定のオプションを作成します。

options = optimoptions('fmincon')
options = 

  fmincon options:

   Options used by current Algorithm ('interior-point'):
   (Other available algorithms: 'active-set', 'sqp', 'trust-region-reflective')

   Set by user:
     No options set by user.

   Default:
                 Algorithm: 'interior-point'
    AlwaysHonorConstraints: 'bounds'
           DerivativeCheck: 'off'
               Diagnostics: 'off'
             DiffMaxChange: Inf
             DiffMinChange: 0
                   Display: 'final'
            FinDiffRelStep: 'sqrt(eps)'
               FinDiffType: 'forward'
               FunValCheck: 'off'
                GradConstr: 'off'
                   GradObj: 'off'
                   HessFcn: []
                   Hessian: 'bfgs'
                  HessMult: []
          InitBarrierParam: 0.1000
     InitTrustRegionRadius: 'sqrt(numberOfVariables)'
               MaxFunEvals: 3000
                   MaxIter: 1000
             MaxProjCGIter: '2*(numberOfVariables-numberOfEqualities)'
            ObjectiveLimit: -1.0000e+20
                 OutputFcn: []
                  PlotFcns: []
              ScaleProblem: 'none'
       SubproblemAlgorithm: 'ldl-factorization'
                    TolCon: 1.0000e-06
                    TolFun: 1.0000e-06
                 TolProjCG: 0.0100
              TolProjCGAbs: 1.0000e-10
                      TolX: 1.0000e-10
                  TypicalX: 'ones(numberOfVariables,1)'
               UseParallel: 0

   Options not used by current Algorithm ('interior-point')
   Default:
               HessPattern: 'sparse(ones(numberOfVariables))'
                MaxPCGIter: 'max(1,floor(numberOfVariables/2))'
                MaxSQPIter: '10*max(numberOfVariables,numberOfInequalities...'
          PrecondBandWidth: 0
            RelLineSrchBnd: []
    RelLineSrchBndDuration: 1
                 TolConSQP: 1.0000e-06
                    TolPCG: 0.1000


既定ではないオプションの作成

fmincon ソルバーの既定ではないオプションを作成します。

options = optimoptions(@fmincon,'Algorithm','sqp','MaxIter',1500)
options = 

  fmincon options:

   Options used by current Algorithm ('sqp'):
   (Other available algorithms: 'active-set', 'interior-point', 'trust-region-reflective')

   Set by user:
    Algorithm: 'sqp'
      MaxIter: 1500

   Default:
    DerivativeCheck: 'off'
        Diagnostics: 'off'
      DiffMaxChange: Inf
      DiffMinChange: 0
            Display: 'final'
     FinDiffRelStep: 'sqrt(eps)'
        FinDiffType: 'forward'
        FunValCheck: 'off'
         GradConstr: 'off'
            GradObj: 'off'
        MaxFunEvals: '100*numberOfVariables'
     ObjectiveLimit: -1.0000e+20
          OutputFcn: []
           PlotFcns: []
       ScaleProblem: 'none'
             TolCon: 1.0000e-06
             TolFun: 1.0000e-06
               TolX: 1.0000e-06
           TypicalX: 'ones(numberOfVariables,1)'
        UseParallel: 0

   Options not used by current Algorithm ('sqp')
   Default:
    AlwaysHonorConstraints: 'bounds'
                   HessFcn: []
                  HessMult: []
               HessPattern: 'sparse(ones(numberOfVariables))'
                   Hessian: 'not applicable'
          InitBarrierParam: 0.1000
     InitTrustRegionRadius: 'sqrt(numberOfVariables)'
                MaxPCGIter: 'max(1,floor(numberOfVariables/2))'
             MaxProjCGIter: '2*(numberOfVariables-numberOfEqualities)'
                MaxSQPIter: '10*max(numberOfVariables,numberOfInequalities...'
          PrecondBandWidth: 0
            RelLineSrchBnd: []
    RelLineSrchBndDuration: 1
       SubproblemAlgorithm: 'ldl-factorization'
                 TolConSQP: 1.0000e-06
                    TolPCG: 0.1000
                 TolProjCG: 0.0100
              TolProjCGAbs: 1.0000e-10


オプションの更新

既存のオプションを新しい値で更新します。

lsqnonlin ソルバーのオプションを作成します。

oldoptions = optimoptions(@lsqnonlin,'Algorithm','levenberg-marquardt','MaxFunEvals',1500)
oldoptions = 

  lsqnonlin options:

   Options used by current Algorithm ('levenberg-marquardt'):
   (Other available algorithms: 'trust-region-reflective')

   Set by user:
      Algorithm: 'levenberg-marquardt'
    MaxFunEvals: 1500

   Default:
    DerivativeCheck: 'off'
        Diagnostics: 'off'
      DiffMaxChange: Inf
      DiffMinChange: 0
            Display: 'final'
     FinDiffRelStep: 'sqrt(eps)'
        FinDiffType: 'forward'
        FunValCheck: 'off'
        InitDamping: 0.0100
           Jacobian: 'off'
            MaxIter: 400
          OutputFcn: []
           PlotFcns: []
       ScaleProblem: 'none'
             TolFun: 1.0000e-06
               TolX: 1.0000e-06
           TypicalX: 'ones(numberOfVariables,1)'

   Options not used by current Algorithm ('levenberg-marquardt')
   Default:
           JacobMult: []
        JacobPattern: 'sparse(ones(Jrows,Jcols))'
          MaxPCGIter: 'max(1,floor(numberOfVariables/2))'
    PrecondBandWidth: Inf
              TolPCG: 0.1000


MaxFunEvals を 2000 に増やします。

options = optimoptions(oldoptions,'MaxFunEvals',2000)
options = 

  lsqnonlin options:

   Options used by current Algorithm ('levenberg-marquardt'):
   (Other available algorithms: 'trust-region-reflective')

   Set by user:
      Algorithm: 'levenberg-marquardt'
    MaxFunEvals: 2000

   Default:
    DerivativeCheck: 'off'
        Diagnostics: 'off'
      DiffMaxChange: Inf
      DiffMinChange: 0
            Display: 'final'
     FinDiffRelStep: 'sqrt(eps)'
        FinDiffType: 'forward'
        FunValCheck: 'off'
        InitDamping: 0.0100
           Jacobian: 'off'
            MaxIter: 400
          OutputFcn: []
           PlotFcns: []
       ScaleProblem: 'none'
             TolFun: 1.0000e-06
               TolX: 1.0000e-06
           TypicalX: 'ones(numberOfVariables,1)'

   Options not used by current Algorithm ('levenberg-marquardt')
   Default:
           JacobMult: []
        JacobPattern: 'sparse(ones(Jrows,Jcols))'
          MaxPCGIter: 'max(1,floor(numberOfVariables/2))'
    PrecondBandWidth: Inf
              TolPCG: 0.1000


ドット表記を使用したオプションの更新

ドット表記を使用して既存のオプションを新しい値に更新します。

lsqnonlin ソルバーのオプションを作成します。

options = optimoptions(@lsqnonlin,'Algorithm','levenberg-marquardt','MaxFunEvals',1500)
options = 

  lsqnonlin options:

   Options used by current Algorithm ('levenberg-marquardt'):
   (Other available algorithms: 'trust-region-reflective')

   Set by user:
      Algorithm: 'levenberg-marquardt'
    MaxFunEvals: 1500

   Default:
    DerivativeCheck: 'off'
        Diagnostics: 'off'
      DiffMaxChange: Inf
      DiffMinChange: 0
            Display: 'final'
     FinDiffRelStep: 'sqrt(eps)'
        FinDiffType: 'forward'
        FunValCheck: 'off'
        InitDamping: 0.0100
           Jacobian: 'off'
            MaxIter: 400
          OutputFcn: []
           PlotFcns: []
       ScaleProblem: 'none'
             TolFun: 1.0000e-06
               TolX: 1.0000e-06
           TypicalX: 'ones(numberOfVariables,1)'

   Options not used by current Algorithm ('levenberg-marquardt')
   Default:
           JacobMult: []
        JacobPattern: 'sparse(ones(Jrows,Jcols))'
          MaxPCGIter: 'max(1,floor(numberOfVariables/2))'
    PrecondBandWidth: Inf
              TolPCG: 0.1000


ドット表記を使用して MaxFunEvals を 2000 に増加させます。

options.MaxFunEvals = 2000
options = 

  lsqnonlin options:

   Options used by current Algorithm ('levenberg-marquardt'):
   (Other available algorithms: 'trust-region-reflective')

   Set by user:
      Algorithm: 'levenberg-marquardt'
    MaxFunEvals: 2000

   Default:
    DerivativeCheck: 'off'
        Diagnostics: 'off'
      DiffMaxChange: Inf
      DiffMinChange: 0
            Display: 'final'
     FinDiffRelStep: 'sqrt(eps)'
        FinDiffType: 'forward'
        FunValCheck: 'off'
        InitDamping: 0.0100
           Jacobian: 'off'
            MaxIter: 400
          OutputFcn: []
           PlotFcns: []
       ScaleProblem: 'none'
             TolFun: 1.0000e-06
               TolX: 1.0000e-06
           TypicalX: 'ones(numberOfVariables,1)'

   Options not used by current Algorithm ('levenberg-marquardt')
   Default:
           JacobMult: []
        JacobPattern: 'sparse(ones(Jrows,Jcols))'
          MaxPCGIter: 'max(1,floor(numberOfVariables/2))'
    PrecondBandWidth: Inf
              TolPCG: 0.1000


別のソルバーへのオプションのコピー

fmincon ソルバーに既定外のオプションを、 fminunc ソルバーのオプションに転送します。

fmincon ソルバーの既定ではないオプションを作成します。

oldoptions = optimoptions(@fmincon,'Algorithm','sqp','MaxIter',1500)
oldoptions = 

  fmincon options:

   Options used by current Algorithm ('sqp'):
   (Other available algorithms: 'active-set', 'interior-point', 'trust-region-reflective')

   Set by user:
    Algorithm: 'sqp'
      MaxIter: 1500

   Default:
    DerivativeCheck: 'off'
        Diagnostics: 'off'
      DiffMaxChange: Inf
      DiffMinChange: 0
            Display: 'final'
     FinDiffRelStep: 'sqrt(eps)'
        FinDiffType: 'forward'
        FunValCheck: 'off'
         GradConstr: 'off'
            GradObj: 'off'
        MaxFunEvals: '100*numberOfVariables'
     ObjectiveLimit: -1.0000e+20
          OutputFcn: []
           PlotFcns: []
       ScaleProblem: 'none'
             TolCon: 1.0000e-06
             TolFun: 1.0000e-06
               TolX: 1.0000e-06
           TypicalX: 'ones(numberOfVariables,1)'
        UseParallel: 0

   Options not used by current Algorithm ('sqp')
   Default:
    AlwaysHonorConstraints: 'bounds'
                   HessFcn: []
                  HessMult: []
               HessPattern: 'sparse(ones(numberOfVariables))'
                   Hessian: 'not applicable'
          InitBarrierParam: 0.1000
     InitTrustRegionRadius: 'sqrt(numberOfVariables)'
                MaxPCGIter: 'max(1,floor(numberOfVariables/2))'
             MaxProjCGIter: '2*(numberOfVariables-numberOfEqualities)'
                MaxSQPIter: '10*max(numberOfVariables,numberOfInequalities...'
          PrecondBandWidth: 0
            RelLineSrchBnd: []
    RelLineSrchBndDuration: 1
       SubproblemAlgorithm: 'ldl-factorization'
                 TolConSQP: 1.0000e-06
                    TolPCG: 0.1000
                 TolProjCG: 0.0100
              TolProjCGAbs: 1.0000e-10


該当するオプションを fminunc ソルバーに転送します。

options = optimoptions(@fminunc,oldoptions)
options = 

  fminunc options:

   Options used by current Algorithm ('trust-region'):
   (Other available algorithms: 'quasi-newton')

   Set by user:
    MaxIter: 1500

   Default:
           Algorithm: 'trust-region'
     DerivativeCheck: 'off'
         Diagnostics: 'off'
       DiffMaxChange: Inf
       DiffMinChange: 0
             Display: 'final'
      FinDiffRelStep: 'sqrt(eps)'
         FinDiffType: 'forward'
         FunValCheck: 'off'
             GradObj: 'off'
             Hessian: 'off'
            HessMult: []
         HessPattern: 'sparse(ones(numberOfVariables))'
         MaxFunEvals: '100*numberOfVariables'
          MaxPCGIter: 'max(1,floor(numberOfVariables/2))'
           OutputFcn: []
            PlotFcns: []
    PrecondBandWidth: 0
              TolFun: 1.0000e-06
              TolPCG: 0.1000
                TolX: 1.0000e-06
            TypicalX: 'ones(numberOfVariables,1)'

   Options not used by current Algorithm ('trust-region')
   Default:
        HessUpdate: 'bfgs'
    ObjectiveLimit: -1.0000e+20


入力引数

すべて折りたたむ

SolverName — ソルバー名文字列または関数ハンドル

文字列または関数ハンドルとして指定されるソルバー名です。

例: 'fmincon'

例: @fmincon

データ型: char | function_handle

oldoptions — オプションoptimoptions を使用して作成されたオプション

options オブジェクトとして指定されるオプションです。関数 optimoptions が options オブジェクトを作成します。

例: oldoptions = optimoptions(@fminunc)

名前/値のペアの引数

オプションのコンマ区切りされた Name,Value 引数のペアを指定します。Name は引数名で、Value は対応する値です。Name は単一引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペア引数を任意の順番で指定できます。

例: optimoptions(@fmincon,'Display','iter','TolFun',1e-10)fmincon オプションを、反復表示をもち 1e-10TolFun 許容誤差をもつように設定します。

関連する名前と値のペアについては、ソルバーのオプション表を参照してください。

出力引数

すべて折りたたむ

options — options オブジェクトoptions オブジェクト

options オブジェクトは、SolverName ソルバーのオプションとして返されます。

代替機能

アプリケーション

最適化アプリケーション (optimtool) を使用してオプションを設定および変更できます。

この情報は役に立ちましたか?