0

問題セットの 1 つに完全に行き詰まっています。

Matlab を使用して、次の ODE 系を解くことになっています。

o'(u) = R-acos(u)/sqrt(b^2 + (R-acosu)^2)
e'(u) = Rcos(o)
n'(u) = Rsin(o)
R,a,b are constants
u goes from 0 to 2pi

今まで試したことのないルンゲ・クッタ法を使うことになっています。私はかなり長い間それに取り組んできましたが、どこから始めればよいかさえわかりません。そのため、実際に示すコードはありません。私は多くのグーグルを行ってきましたが、結果はありません。

誰かが私に手を差し伸べることができれば、それは大歓迎です!

4

1 に答える 1

0

ODE ソルバーの使用と特定のソルバーを呼び出す構文について、mathworks で入手できるわかりやすいマニュアルを読んでください。ここでの古典的な方法は

function yprime = odefunc(u,y,R,a,b)
    o=y(1); e=y(2); n=y(3);
    oprime = R-a*cos(u)/sqrt(b^2 + (R-a*cos(u))^2);
    eprime = R*cos(o);
    nprime = R*sin(o);
    yprime = [oprime; eprime; nprime ];
end //function

初期条件、時間枠、パラメータを定義した後、次のように呼び出します。

[t,y] = ode45(@(t,y) odefunc(t,y,R,a,b), [t0, tf], [o0; e0; n0])
于 2015-05-06T09:14:34.913 に答える