keisoku

ルンゲ・クッタ法(2次・1階常微分方程式)

dy/dx=f(x,y) を2次ルンゲ・クッタ法(中点法)で数値的に解き、終点での近似解・数値解の表・解曲線グラフを表示します。

入力

dy/dx =

方程式の例(タップで入力)

y' = y(指数増加)
y' = x - y
y' = -2xy
y' = x^2 - y

使える記号:+ - * / ^(べき乗)/関数:sin cos tan asin acos atan sinh cosh tanh exp log(自然対数) ln log10 sqrt cbrt abs pow(a,b)/定数:pi(π), e/変数は x と y。刻み幅 h で x0 から終点 x までを刻んで解きます。

計算結果

dy/dx = x - y、y(0) = 1 のとき

終点 x = 3 での近似解 y

2.100112

0.60.811.21.41.61.822.200.511.522.53

ステップ数

30

区間の分割数

実効の刻み幅 h

0.1

端点に合わせ調整

初期条件

y(0) = 1

終点 x = 3


数値解(x, y)

ステップxy傾き f(x, y)
001-1
20.20.83805-0.63805
30.30.782435-0.48244
50.50.714152-0.21415
60.60.698807-0.09881
80.80.6999510.10005
90.90.7144550.18554
111.10.7670590.33294
121.20.8036890.39631
141.40.8944360.50556
151.50.9474650.55254
171.71.0664850.63352
181.81.1316690.66833
2021.2716450.72836
212.11.3458390.75416
232.31.5013480.79865
242.41.582220.81778
262.61.7492430.85076
272.71.8350650.86494
292.92.0106210.88938
3032.1001120.89989

計算方法・使い方

  • 右辺 f(x, y) に式を入れ、初期値 x0・y0、刻み幅 h、終点 x を指定すると、x0 から終点 x まで2次ルンゲ・クッタ法で数値的に解きます。
  • 各ステップでは傾き k1 = f(x, y) と中点での傾き k2 = f(x + h/2, y + h/2·k1) を求め、y_{n+1} = y_n + h·k2 として更新します(中点法・2次精度)。
  • 刻み幅 h を小さくするほど精度は上がりますが計算ステップ数が増えます。h はステップ数を整数化する都合で終点に合わせて自動調整されます。
  • 式では変数 x と y、四則演算と ^(べき乗)、sin・cos・exp・log・sqrt・abs などの関数、定数 pi・e が使えます。
  • 解が急激に増加・減少する方程式では値が発散することがあります。その場合は刻み幅を小さくするか終点の範囲を狭めてください。
  • 結果は終点での近似解の大きな表示に加え、各ステップの (x, y) と傾きの表、解曲線のグラフで確認できます。