数値解析 第8回 (1) 状況設定
状況設定
- x : 変数
- y=y(x) : x の未知関数
- f(x,y) : x と y の 2 変数関数 ( プログラミング言語のライブラリで計算できるもの )
とするとき、次の形の微分方程式の数値解を求めます :
y′(x)=f(x,y(x)),y(x0)=y0
(
f の式と、
x0 と
y0 の値が与えられます。)
Ex.1 第2回のパラシュートの例 は (
x と
y で書くと )
y″=−g−Ky′
でした。1 回積分すると
y′=−gx−Ky+c
となり、
(9.7) で
f(x,y)=−gx−Ky+c の場合になります。
基本方針
例によっていろいろな手法がありますが、今日紹介する方法に共通する方針は次のとおりです:
- x の刻み幅 h を設定する。
- 初期条件を決める x0 から h 刻みで
xn=x0+n×h ( n=1,2,⋯ )
とおく。
- xn での真の値 y(xn) の 近似値を yn ( n=1,2,⋯ ) と書くことにする。
- 順番に、
- y0 の値から y1 を推定し、
- y1 の値から y2 を推定し、
⋮
- yn の値から yn+1 を推定してゆく
近似式の作り方(積分進行法)
(9.7) より
\dps∫xn+1xnf(x,y(x))dx=∫xn+1xny′(x)dx=y(xn+1)−y(xn)
ゆえ、真の値
y(xn) たちは
y(xn+1)=y(xn)+∫xn+1xnf(x,y(x))dx
を満たします。
とは言っても
y(x) が未知 なので、
何らかの理屈をつけて右辺の積分を近似します。