Main Content

最適化オプションの設定、問題ベース

問題ベースのアプローチで最適化解法プロセスを調整するには、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 を使用します。これらのソルバーは、fminbndfminsearchfzero、および lsqnonneg です。

オプションの設定に関するその他の考慮事項は、ソルバーベースのアプローチと同じです。詳細については、最適化オプションの設定を参照してください。

参考

| |

関連するトピック