最適化オプションの設定と変更
最適化オプションの設定方法として、関数 optimoptions
を使用することを推奨します。たとえば、次のコードは、fmincon
アルゴリズムを sqp
に設定して、反復表示を指定し、ConstraintTolerance
許容誤差として小さな値を設定します。
options = optimoptions('fmincon',... 'Algorithm','sqp','Display','iter','ConstraintTolerance',1e-12);
メモ
fminbnd
、fminsearch
、fzero
、lsqnonneg
のソルバーには、optimoptions
の代わりに optimset
を使用します。これらは Optimization Toolbox™ ライセンスを必要としないソルバーです。
オプションは複数の方法で変更できます。たとえば、ドット表記を使用できます。
options.StepTolerance = 1e-10;
または、optimoptions
を使用してオプションを変更できます。
options = optimoptions(options,'StepTolerance',1e-10);
メモ
この例で示すように、必ず、ソルバーの呼び出しで options
を渡すようにしてください。
[x,fval] = fmincon(@objfun,x0,[],[],[],[],lb,ub,@nonlcon,options);
オプションをその既定値にリセットするには、resetoptions
を使用します。
options = resetoptions(options,'StepTolerance');
一度に複数のオプションをリセットするには、オプション名の cell 配列を渡します。
options = resetoptions(options,{'Algorithm','StepTolerance'});
また、[最適化] ライブ エディター タスクを使用してオプションの設定と変更を行うこともできます。
参考
optimoptions
| resetoptions
| 最適化