1)高速化2)自動微分(AD)を使用して関数の導関数を生成する必要があるMatlab関数があります。
MatlabCoderを使用してCコードとmex関数を生成することで達成したスピードアップの部分。今、私は、この自動生成されたCコードにすぐに使用できる(またはコードを少し変更した)ADツールを探しています。そこにC / C ++ ADツールの多くは、ご覧のようだC / C ++ ADツールを、そして私は、この目的のためにカップルをテストしました:
Matlab Coderで生成されたコードにこのようなツールを使用した経験のある人はいますか?
PS。ADツールはWindowsで動作するはずです。
シンボリックツールボックスがある場合は、それを使用して分析派生物を生成できます。z = f(x、y)のような関数があると仮定して、シンボリック変数を作成します
x = sym('x', [mx,nx]);
y = sym('y', [my,ny]);
ここで、mx、nx、mx、myは、入力変数のサイズを指定します。シンボリック変数を使用してfを呼び出します(例:z = f(x、y))。
これで、関数jacobianを使用して導関数を作成できます。
jac_z_x = jacobian(z,x(:));
jac_z_y = jacobian(z,y(:));
matlabFunctionを使用して派生物をmatlabファイルに書き込みます。必要に応じて、MATLABCoderを使用して関数をコンパイルできます。これが私の最適化問題のために私がそれをする方法です。
これがマティアスに役立つことを願っています
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加