ルンゲ・クッタ法(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
ステップ数
100 回
点数 101
刻み幅 h
0.1
Δx = h
初期条件
y(0) = 1
y'(0) = 0
y の範囲
-0.9997 〜 1
全ステップ中
数値解(x, y, y')
| ステップ | x | y | y'(=v) |
|---|---|---|---|
| 0 | 0 | 1 | 0 |
| 7 | 0.7 | 0.764843 | -0.644217 |
| 14 | 1.4 | 0.169968 | -0.985449 |
| 21 | 2.1 | -0.504845 | -0.86321 |
| 29 | 2.9 | -0.970957 | -0.239252 |
| 36 | 3.6 | -0.89676 | 0.442518 |
| 43 | 4.3 | -0.400802 | 0.916164 |
| 50 | 5 | 0.283658 | 0.958925 |
| 57 | 5.7 | 0.83471 | 0.550689 |
| 64 | 6.4 | 0.993185 | -0.116544 |
| 71 | 7.1 | 0.684551 | -0.728965 |
| 79 | 7.9 | -0.045996 | -0.998941 |
| 86 | 8.6 | -0.678714 | -0.734402 |
| 93 | 9.3 | -0.992224 | -0.124462 |
| 100 | 10 | -0.839075 | 0.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階の常微分方程式で表される現象のシミュレーションに利用できます。
関連する計算ツール
関数 f(x) のグラフ描画
数値解析sin(x) や x^2-2 などの数式を入力すると、指定した x の範囲で関数のグラフを自動描画。最大・最小・ゼロ点や代表点の値も同時に確認できます。
計算する →関数 f(x), g(x) のグラフ描画
数値解析2つの数式 f(x) と g(x) を同じ座標平面に色分けで重ねて描画。区間内の最大・最小値や交点も自動で求めます。
計算する →データ点 f(x) のグラフ描画
数値解析(x, y) のデータ点を入力するだけで、折れ線+点のグラフを自動描画。点数・y の最小最大・平均も同時に確認できます。
計算する →データ点 f(x), g(x) のグラフ描画
数値解析2系列の(x, y)データ点を入力すると、f(x)とg(x)を色分けで重ねた折れ線グラフを描き、各系列の点数・最大最小を表示します。
計算する →