1
こんにちは、これは私にとって非常に問題なのかもしれませんが、私は固執していますし、しばらくの間これをやろうとしています。MATLABの無名関数内で匿名関数を作成しよう
私はこのような何かをしようとしている:
a=0.5;
ODE= @(x,y) ((-2*(a^2)*x*y)/(x^2+y^2)^2)/(1-((a^2)*(x^2-y^2)/(x^2+y^2)^2));
%The classical RK4 solution as a function
k1 = ODE(x,y);
k2 = ODE(x+0.5*dx,y+k1*0.5*dx);
k3 = ODE(x+0.5*dx,y+k2*0.5*dx);
k4 = ODE(x+dx,y+k3*dx);
rk4= @(x,y,dx) y + 1/6*(k1 + 2*(k2+k3) + k4)*dx;
だから私は、最初の無名関数としてODEを定義し、その後、私はODEからKさんとKさんから最後にRK4を定義しようとしています。
しかし、これは機能しません。どのような提案をするか?
ありがとうございました。 私は質問があります。 rk4を計算する別の関数ファイルを定義したければ、どうすればよいですか? 私は関数ファイルで@(..)を使用することはできません。交換は何ですか? – user1020121
通常の関数の本体で匿名関数を定義することはできます。関数ファイルが 'function rk4 = RK4(ODE、x、y、dx)'で始まる場合、本体は上記のコードになります。 '@(x、y、dx)'がrk4行から削除されました。 – user57368
ありがとうございました。私は今、関数のロジックを理解しています。 – user1020121