keisoku

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

dy/dx=f(x,y) の右辺の数式と初期値 x0・y0、刻み幅 h、終点 xEnd を入力すると、古典的4次ルンゲ・クッタ法(RK4)で常微分方程式を数値的に解きます。終点での近似解 y、各ステップの k1〜k4 と y の値の表、解曲線のグラフを表示します。

入力

dy/dx =

右辺の例(タップで入力)

y
x + y
x - y
-2*y
x*y
cos(x) - y

使える記号:+ - * / ^(べき乗)/関数:sin cos tan asin acos atan sinh cosh tanh exp log(自然対数) ln log10 sqrt cbrt abs pow(a,b)/定数:pi(π), e。 変数は x と y(および y'=v)が使えます。三角関数の角度はラジアンです。

計算結果

x = 1 における近似解 y

y ≒ 2.71828

dy/dx = y

11.522.5300.10.20.30.40.50.60.70.80.91

ステップ数

10 回

区間を分割した回数

刻み幅 h

0.1

区間 0 → 1

初期条件

y(0) = 1

x0 における y の値


各ステップの解(k1〜k4 は次の点を求めるための傾き)

nxyk1k2k3k4
00111.051.05251.1053
10.11.1051711.10521.16041.16321.2215
20.21.2214031.22141.28251.28551.35
30.31.3498581.34991.41741.42071.4919
40.41.4918241.49181.56641.57011.6488
50.51.6487211.64871.73121.73531.8222
60.61.8221181.82211.91321.91782.0139
70.72.0137522.01382.11442.11952.2257
80.82.225542.22552.33682.34242.4598
90.92.4596012.45962.58262.58872.7185
1012.71828

計算方法・使い方

  • 1階の常微分方程式 dy/dx=f(x,y) を、古典的な4次ルンゲ・クッタ法(RK4)で数値的に解くツールです。右辺の式 f(x,y)、初期値 x0・y0、刻み幅 h、終点 xEnd を入力すると、終点での y の近似値を求めます。
  • RK4 は各ステップで4つの傾きを使います。k1=f(x,y)、k2=f(x+h/2, y+h·k1/2)、k3=f(x+h/2, y+h·k2/2)、k4=f(x+h, y+h·k3) を計算し、y(次)=y+(h/6)·(k1+2·k2+2·k3+k4) で次の点へ進みます。
  • 刻み幅 h を小さくするほど誤差は小さくなり、RK4 は h の4乗に比例して精度が上がる高精度な手法です。一方でステップ数が増えるため、計算量とのバランスを見て h を選んでください。
  • 終点 xEnd が初期値 x0 より小さい場合は逆向き(h を負の向き)に積分します。区間の端数は最後のステップで自動的に調整し、ちょうど xEnd まで計算します。
  • 右辺の式では変数 x と y が使え、+ - * / とべき乗 ^、sin・cos・tan・exp・log・ln・sqrt・abs・pow(a,b) などの関数、定数 pi・e に対応します(角度はラジアン)。例として dy/dx=y、初期値 y(0)=1 では解が e^x になり、x=1 で約 2.71828 が得られます。
  • 各ステップの x・y と傾き k1〜k4 を表に、解の点をつないだ曲線をグラフに表示します。途中で値が発散したり定義域を外れた場合は刻み幅や式を見直してください。入力や計算結果は外部に送信されず、すべてブラウザ内で処理されます。