この計算ツールでできること
このツールは、\(y'' = F(x, y, y')\) の形で表される2階常微分方程式を、区間 \([x_0, x_n]\) 上で2次のルンゲ・クッタ法(中点法/修正オイラー型の RK2 スキーム)を用いて数値的に解きます。右辺 \(F\) を x・y・p(p は y' を表します)の式として入力し、初期値 \(y(x_0)\) と \(y'(x_0)\)、区間の両端、そしてステップ数を指定してください。結果は区間を進みながら計算された (x, y, y') の数表として得られます。これは純粋な数値解析の手法なので、国や地域に関係なく同じように使えます。
使い方
強制関数 \(F\) は x・y・p を使って入力します。たとえば \(y'' = -4y' - 4y\) なら -4*p-4*y と書きます。演算子は + - * / ^(または **)、関数は sin, cos, tan, exp, log, ln, sqrt, abs, pow、定数は pi, e が利用できます。x0、初期値 y0 と y'0 = p0、終端 xn を設定し、分割数 n を選びます。ステップ数を増やすほど刻み幅 \(h = (x_n - x_0)/n\) が小さくなり、誤差も小さくなります(大域誤差は \(O(h^2)\))。
計算式の解説
まず \(p = y'\) とおいて方程式を1階の連立系に変形します。すると $$\begin{cases} y' = p \\ p' = F(x,y,p) \end{cases}$$ となります。RK2 の各ステップでは、区間の始点と中点で傾きを評価して組み合わせます。すなわち \(j_1 = h\cdot F(x,y,p)\)、\(k_1 = h\cdot p\) を求め、続いて中点で \(j_2\) と \(k_2\) を評価して p と y を進めます。1ステップあたりの局所打ち切り誤差は \(O(h^3)\) です。
計算例
F = -4*p-4*y、x0 = 0、y0 = 0、p0 = 1、xn = 1、n = 50 の場合、刻み幅は \(h = 0.02\) です。最初のステップで \(y_1 = 0.0192\)、\(p_1 = 0.9224\) となります。x = 1 まで反復すると \(y(1) \approx 0.13533\)、\(y'(1) \approx -0.13533\) が得られ、これは厳密解 \(y = x\cdot e^{-2x}\) の x = 1 における値 \(e^{-2} = 0.135335\) とよく一致します。
よくある質問
これは RK2 ですか、それとも RK4 ですか? これは2次のルンゲ・クッタ法(中点公式)であり、古典的な4次法ではありません。そのため大域的な精度は2次にとどまります。
xn を x0 より小さくできますか? できます。その場合は刻み幅が負になり、積分が逆向きに進むだけで、数学的には問題ありません。
エラー行が出たのはなぜですか? \(F\) の計算中にゼロ除算、0以下の数の対数、負の数の平方根などの問題が起きると、積分が停止し、その発生位置が表示されます。