keisoku

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

y''=f(x,y,y') を1階連立に変換し、2次ルンゲ・クッタ法で数値的に解きます。終点での y と y' を求め、解曲線のグラフと各ステップの数表を表示します。

入力

y''=

式の例(タップで入力)

単振動 y''=-y
減衰振動 y''=-y-0.2v
強制振動
y''=-9.8(自由落下)
van der Pol

変数は x(独立変数)、y(解)、v(= y'、解の傾き)。使える記号:+ - * / ^(べき乗)/関数:sin cos tan exp log(自然対数) ln log10 sqrt abs pow(a,b) など/定数:pi(π), e。

計算結果

x = 10 における近似解 y

y ≒ -0.333058

そのときの傾き y' ≒ 0.189841

-1-0.500.51012345678910横軸 x / 縦軸 y

ステップ数

100 回

刻み幅 h = 0.1

初期条件

y(0) = 1

y'(0) = 0

終点での解

y = -0.3331

y' = 0.1898


数値解の推移(抜粋)

xyy'(= v)
010
0.80.711093-0.663591
1.7-0.019739-0.840923
2.5-0.572066-0.47327
3.3-0.720850.105891
4.2-0.3866920.570002
50.1032750.58628
5.80.4624880.270557
6.70.490978-0.197022
7.50.218389-0.439761
8.3-0.136527-0.399268
9.2-0.374116-0.101006
10-0.3330580.189841

y'' = -y - 0.2*vを y' = v, v' = f(x, y, v) の連立に変換し、 2次ルンゲ・クッタ法で逐次計算しています。

計算方法・使い方

  • 2階の微分方程式 y''=f(x,y,y') を、解 y とその傾き y'(v と表記)の2つを同時に追う1階連立に置き換えて解きます。式の中では独立変数 x、解 y、傾き v(=y')の3変数が使えます。
  • 右辺の式・初期点 x0・初期値 y(x0)・初期傾き y'(x0)・刻み幅 h・終点 x_end を入力すると、終点での y と y' の近似値が大きく表示されます。
  • 刻み幅 h を小さくするほど精度は上がりますが、ステップ数が増えて計算量も大きくなります。結果が振動・発散する場合はまず h を小さくして試してください。
  • sin・cos・exp・log・sqrt などの関数や、円周率 pi・自然対数の底 e といった定数を式に含められます。2引数の pow(a,b) も利用できます。
  • 単振動 y''=-y、減衰振動 y''=-y-0.2y'、外力のある強制振動など、物理でよく現れる運動方程式の挙動を手早く確認できます。
  • 表示される数表は計算ステップを間引いた抜粋で、解曲線のグラフには初期点と終点の位置も合わせて示します。