- ベストアンサー
ode45(Matlab)のしくみ
MATLABの関数ode45は dy/dt=F(t,y) の型の微分方程式の解yを得るのにもちいりますが,基本的なプログラムの表記は [T,Y]=ode45('F',tspan,yo) と書きますよね.ここで得られるT,Yは T:to t1 t2 t3.....tend Y:yo y1 y2 y3.....yend であるわけですが,実際このYはどのようにして得られた値なのでしょうか? y2なら例えば y2=dy/dt*(t2-t1)+y1 などのようにして得られているのでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ヘルプを見ると ode45 は、Dormand-Princean の陽的 Runge-Kutta (4,5) 公式に基づきます。 これは、単段階 ソルバです。すなわち、y(tn) の計算では、 直前のy(tn-1) における解のみ必要とします。 一般に、 ode45 は、ほとんどの問題に対して最初の試みとして利用すべき最良の関数です。 [3] [3] Dormand, J. R. and P. J. Prince, “A family of embedded Runge-Kutta formulae,” J. Comp. Appl. Math., Vol. 6, 1980, pp 19-26. と記載があります.この文献を当たれば分かるのでは無いでしょうか. 添付に関連する情報があります. http://odeity.googlecode.com/hg/doc/papers/an-efficient-rk-45-pair-bogacki-shampine.pdf http://www.sciencedirect.com/science/article/pii/0771050X80900133#