optimoptions
と optimset
からの選択
以前は、オプションの設定には optimset
の使用が推奨されていました。現在は、optimoptions
の使用が一般に推奨されていますが、以下に挙げるいくつかの注意点があります。
Optimization Toolbox™ のライセンスがなくても使用可能なソルバーにオプションを設定する唯一の方法として、optimset
を引き続き使用できます。こうしたソルバーには、fminbnd
、fminsearch
、fzero
および lsqnonneg
があります。
メモ
一部の他のツールボックスでは最適化オプションが使用され、optimoptions
ではなく optimset
を使用して作成したオプションを渡さなければなりません。ツールボックスのドキュメンテーションを確認してください。
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: []