数値計算及び実習 第12回 応用プログラミング(4) 応用プログラミング(4) 1. 微分方程式(初期値問題) ・オイラー法 ・ルンゲ クッタ法 常微分方程式の初期値問題 常微分方程式の初期条件を満たす特殊解を 求める問題 dy f x , y dx yx 0 y0 これは以下の式として表すことができる。 x y y 0 f , y d x0 数値解法 ・数値解法では、x0,x1,x2…といった離散的なxの値に対して yの値(y0,y1,…)を計算することになる。 ・xi(n=0,1,2…)を分点、その間隔を刻み(h)という。 y y 刻みh x x 分点 数値解法の種類 • 一段階法: yi 1 yi h xi , yi φ(xi,yi):増分関数 • 多段階法: yi 1 yi r h b j f xi j , yi j p j 0 • 予測子・修正子法: 多段階法を、繰 り返し手続きを用いて計算する方法 ※今回は一段解法について説明 テイラー展開 刻みhが十分に小さいものとして、yi+1=y(xi+h)をx=xi まわりでテイラー展開すると、以下のようになる。 1 2 1 i (i ) yi 1 yi hy' xi h y" xi h y xi 2! i! f ( xi , yi ) 1 f ( xi , yi ) yi hf xi , yi h 2 f ( xi , yi ) 2! x y i 1 1 i h f ( xi , yi ) f xi , yi i! x y オイラー法 y(x) (xi+2,yi+2) yi 1 yi hf xi , yi (xi+1,yi+1) hf(xi,yi) (xi,yi) ・テイラー展開した式の第二項 以下を無視 ・増分関数φ(x,y)をf(x,y)と xi xi+1 xi+2 したもの ・ (xi,yi)における傾きf(xi,yi)と刻みhから増分を計算し、 (xi+1,yi+1)を得る(以下、これを繰り返す)。 ・折れ線で、f(x)を近似 x ルンゲクッタ法 k1 2k 2 2k3 k 4 yi 1 yi 6 k1 hf xi , yi k2 h k 3 hf xi , y i 2 2 k1 h k 2 hf xi , yi 2 2 k 4 hf xi h, yi k 3 ・4次のルンゲクッタ法 ・テイラー展開のh4までの項が等しくなるように 作られている ルンゲクッタ法(続き) y(x) 1) A点における傾きから k1を計算 (xi+1,yi+1) k4 2) B点(xi+h/2,yi+k1/2)におけ る傾きからk2を計算 5) k1 ~k4の重み付き平均を 増分として、これをyiに加える ことによりyi+1を求める k3 C 3) C点(xi+h/2,yi+k2/2)におけ (xi,yi) る傾きからk3を計算 4) C点(xi+h,yi+k3)における 傾きからk4を計算 D A k1 B h/2 xi k2 h/2 xi+1/2 xi+1 x
© Copyright 2024 ExpyDoc