質問: mファイルでの微分 simulinkで微分をするときはderivativeブロックを使いますが、 mファイルで微分をするにはどのようなコードなのでしょうか? 宜しくお願い致します。
回答: 関数の数値微分は、 と表わせますので、関数 fおよび入力の値xを引数に持つインライン関数などを定義すれば良いと思います。dxは十分小さい値を与えましょう。n階微分を定義するきれいな方法もあるはずですが割愛します。 以下に、2次関数を数値微分するサンプルコードを示します。 f=@(x)x.^2;% f(x)= x^2 % dxを0.0001として直書きした数値微分のインライン関数 dydx=@(f,x)(f(x+0.0001)-f(x))/0.0001; dydx(f,0)% fとxを与える %% 可視化してみる xx=-10:0.1:10; figure; yyaxis left; plot(xx,f(xx)); yyaxis right;plot(xx, dydx(f,xx));