Processing math: 100%

数値解析 第8回 (1) 状況設定

状況設定

  • x : 変数
  • y=y(x) : x の未知関数
  • f(x,y) : xy の 2 変数関数 ( プログラミング言語のライブラリで計算できるもの )
とするとき、次の形の微分方程式の数値解を求めます : y(x)=f(x,y(x)),y(x0)=y0 ( f の式と、x0y0 の値が与えられます。)
Ex.1 第2回のパラシュートの例 は ( xy で書くと )
y=gKy
でした。1 回積分すると
y=gxKy+c
となり、 (9.7)f(x,y)=gxKy+c の場合になります。

基本方針

 例によっていろいろな手法がありますが、今日紹介する方法に共通する方針は次のとおりです:
  1. x の刻み幅 h を設定する。
  2. 初期条件を決める x0 から h 刻みで
    xn=x0+n×h  ( n=1,2, )
    とおく。
  3. xn での真の値 y(xn)近似値を yn ( n=1,2, ) と書くことにする。
  4. 順番に、
    • y0 の値から y1 を推定し、
    • y1 の値から y2 を推定し、
         
    • yn の値から yn+1 を推定してゆく

近似式の作り方(積分進行法)

 (9.7) より
\dpsxn+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) が未知 なので、何らかの理屈をつけて右辺の積分を近似します。