最適化オプションの設定、問題ベース
問題ベースのアプローチで最適化解法プロセスを調整するには、optimoptions
を使用してオプションを設定し、そのオプションを solve
に渡します。
options = optimoptions("fmincon",PlotFcn=@optimplotfvalconstr);
[sol,fval] = solve(prob,x0,Options=options);
どのソルバーを指定すべきか疑問に思うかもしれません。optimoptions
ではソルバーの設定が必要ですが、solve
がソルバーを選択します。オプションにどのソルバーを設定すべきでしょうか。
solve
が問題に使用する既定のソルバーを求めるには、solvers
を使用します。
default = solvers(prob)
default = "lsqnonlin"
既定のソルバーを使用する場合は、solvers
の最初の出力を使用するオプションを指定します。
options = optimoptions(default,...);
問題に使用できるすべてのソルバーを求めるには、solvers
の 2 番目の出力を表示します。
[~,validsolvers] = solvers(prob)
validsolvers = 1x10 string
"lsqnonlin" "lsqcurvefit" "fmincon" "ga" "patternsearch" "surrogateopt" "particleswarm" "simulannealbnd" "gamultiobj" "paretosearch"
名前と値の引数 Solver
を使用して、solve
の既定以外のソルバーを指定できます。
[sol,fval] = solve(prob,x0,Options=options,Solver="fmincon");
メモ
Optimization Toolbox™ のライセンスがなくても使用可能なソルバーのオプションを設定するには、optimset
を使用します。これらのソルバーは、fminbnd
、fminsearch
、fzero
、および lsqnonneg
です。
オプションの設定に関するその他の考慮事項は、ソルバーベースのアプローチと同じです。詳細については、最適化オプションの設定を参照してください。
参考
optimoptions
| solve
| solvers