fcn2optimexpr
アルゴリズムの説明
fcn2optimexpr
は、最適化変数に適用される標準の MATLAB® 関数ハンドルを等価な最適化式に変換します。この関数は、効率的に評価できる式を作ろうとします。詳細は省きますが、fcn2optimexpr
は以下の手順に従います。
手順の説明:
引数
Analysis
が"off"
の場合、ブラック ボックス関数として関数をラップして終了します。そうでない場合、関数に別個の関数として表されている
for
ループがあるかどうかを確認します。ある場合は、静的解析を使用して関数の解析を試みます。これが成功すると、終了します。そうでない場合は、次のケースに進みます。
ない場合は、オーバーロードを使用して関数の評価を試みます。これは、すべての演算が最適化変数および式でサポートされる演算のリストに含まれているかどうかを確認することを意味します。含まれている場合は、サポートされている演算子を使用して終了します。含まれていない場合は、ブラック ボックスとして関数をラップして終了します。
返される式が "ブラック ボックス" の場合は、自動微分が適用されません。これは、ソルバーが導関数情報を使用する場合、ソルバーは有限差分ステップを使用して導関数を推定しなければならないことを意味します。
静的解析の詳細については、最適化式の静的解析を参照してください。