重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

time=0:1:1000;
y0=[0;0];
[t, y]=ode45(@dydt,time, y0);
plot(t,y(:,1)/1000,t,y(:,2));

function retval=dydt(t, y)
retval=[y(2);3000/500];
end

というプログラムは単位質量あたり働く力が6N/kgのt=oで速度0の質点の速さと位置を求めて描写しているんですが、y(:,1)でなぜ位置,y(:,2)でなぜ速さを表せているのか(すなわちどうして一列目が一回積分で、二列目が二回積分なのか)、またy(2)はいったい何を表しているのかを教えていただけませんか?プログラミング初心者かつ

質問者からの補足コメント

  • 勝手な言葉を用いて混乱させてしまいすいません。私はあほうなので微分方程式を解くことを積分みたいなものと捉えてました。ode45でたとえばdxdt=tやdxdt=-(x-1)などはどういうプログラミングをすればいいのかまではわかります。x''=50を解くときx'=50とx''=x'の二つをode45で解いているのはわかるんですけどなぜそのプログラムでいいのかがわからないのです。matlabのode45のページの解説を見てもわかりませんでした。もしご存じであったら教えていただけると幸いです。

    No.1の回答に寄せられた補足コメントです。 補足日時:2020/04/29 17:43

A 回答 (1件)

「y(2)」は


dydt の第2引数 y の第2要素
だろうねえ.

ところで, 「一回積分」「二回積分」ってなに? あと, ode45 が「1階微分方程式を解く」ものであることに気づいてるかな?
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!