keisoku

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

y''=f(x,y,y') を4次ルンゲ・クッタ法で数値的に解く計算ツール。初期条件と刻み幅を入れるだけで、各ステップの x・y・y' の表と解曲線のグラフを表示します。

入力

y''=

例(タップで右辺と初期条件をセット)

単振動 y''=-y
減衰振動 y''=-0.2v-y
自由落下 y''=-9.8
強制振動 y''=-y+sin(x)

変数:x(独立変数), y(解), v(=y'。dy / yp とも書けます)。使える記号:+ - * / ^(べき乗)/関数:sin cos tan asin acos atan sinh cosh tanh exp log(自然対数) ln log10 sqrt cbrt abs pow(a,b)/定数:pi(π), e。

計算結果

x = 10 における解 y

y ≒ -0.839075

このとき y' ≒ 0.544014

-1-0.500.51012345678910

ステップ数

100 回

点数 101

刻み幅 h

0.1

Δx = h

初期条件

y(0) = 1

y'(0) = 0

y の範囲

-0.9997 〜 1

全ステップ中


数値解(x, y, y')

ステップxyy'(=v)
0010
70.70.764843-0.644217
141.40.169968-0.985449
212.1-0.504845-0.86321
292.9-0.970957-0.239252
363.6-0.896760.442518
434.3-0.4008020.916164
5050.2836580.958925
575.70.834710.550689
646.40.993185-0.116544
717.10.684551-0.728965
797.9-0.045996-0.998941
868.6-0.678714-0.734402
939.3-0.992224-0.124462
10010-0.8390750.544014

式 y'' = -yを v = y' とおいて連立化し、4次ルンゲ・クッタ法で積分した結果です。

計算方法・使い方

  • 2階常微分方程式 y''=f(x,y,y') を、y'=v・v'=f(x,y,v) という1階の連立方程式に変換し、古典的4次ルンゲ・クッタ法(RK4)で数値的に解きます。
  • f(x,y,v) の式(v は y の1階微分 y' を表します)、初期値 x0・y0・y'0(=v0)、刻み幅 h、終点 xend を入力してください。
  • 各ステップで y と v それぞれについて4つの傾き k1〜k4 を計算し、重み付き平均で次の値を求めます。2次法やオイラー法より高精度です。
  • 結果は終点での y(および y')を主要数値として表示し、各ステップの (x, y, y') を表に、y の解曲線を SVG グラフで描画します。
  • 刻み幅 h を小さくするほど精度は上がりますが計算ステップが増えます。数式の評価には eval を使わない独自パーサを用いています。
  • 振動・減衰・ばね運動など、2階の常微分方程式で表される現象のシミュレーションに利用できます。