MCPで接続 →

計算を入力してください

公式

広告

結果

y(xn) — RK4 approximation
0.7615941538
古典的4次ルンゲクッタ法
ステップ幅 h 0.02
分割数 n 50
F(x,y) の評価回数 200
i / x y(近似値)
0 0
0.02 0.0199973337
0.04 0.0399786803
0.06 0.0599281034
0.08 0.079829769
0.1 0.0996679945
0.12 0.1194272984
0.14 0.1390924477
0.16 0.1586485041
0.18 0.1780808679
0.2 0.1973753199
0.22 0.2165180612
0.24 0.2354957492
0.26 0.2542955322
0.28 0.2729050801
0.3 0.291312612
0.32 0.3095069207
0.34 0.3274773943
0.36 0.3452140335
0.38 0.3627074669
0.4 0.3799489616
0.42 0.3969304313
0.44 0.4136444414
0.46 0.4300842106
0.48 0.4462436094
0.5 0.4621171563
0.52 0.4777000112
0.54 0.4929879656
0.56 0.5079774318
0.58 0.5226654285
0.6 0.5370495658
0.62 0.5511280273
0.64 0.5648995515
0.66 0.5783634117
0.68 0.591519394
0.7 0.6043677756
0.72 0.6169093013
0.74 0.6291451598
0.76 0.6410769595
0.78 0.6527067042
0.8 0.6640367685
0.82 0.675069873
0.84 0.6858090604
0.86 0.6962576708
0.88 0.7064193184
0.9 0.7162978682
0.92 0.7258974128
0.94 0.7352222508
0.96 0.7442768652
0.98 0.7530659027
1 0.7615941538

この計算ツールでできること

このツールは、初期条件 \(y(x_0) = y_0\) が与えられた \(y' = F(x, y)\) 形式の1階常微分方程式を、\(x_0\) から \(x_n\) までの区間で数値的に解きます。用いるのは古典的な4次ルンゲクッタ法(RK4)で、数値解析の分野でもっとも広く使われ、信頼性の高い1段階法の一つです。計算結果は、真の解を近似する点 \((x_i, y_i)\) の数表と、終点での値 \(y(x_n)\) として得られます。本ツールは純粋に数学的なもので、特定の国や単位系に依存しません。

使い方

右辺 \(F(x,y)\) を xy の式として入力します(例:1-y^2x+yx*ysin(x)+y など)。使用できる演算子は + - * / ^、関数は sin, cos, tan, exp, log, ln, sqrt, abs, tanh など、定数は pie です。始点 \(x_0\)、初期値 \(y_0\)、終点 \(x_n\) を設定し、区間を何等分するか(分割数 \(n\))を選びます。RK4 の全体誤差は \(h^4\) のオーダーで小さくなるため、分割数を増やすほど精度が高まります。

公式の解説

区間は幅 \(h = (x_n - x_0)/n\) の \(n\) 等分に分けられます。各ステップで RK4 は傾きを4回求めます。すなわち、区間の始点で1回(\(k_1\))、中点で2回(\(k_2, k_3\))、終点で1回(\(k_4\))です。次の値はこれらの重み付き平均として $$y_{n+1} = y_n + \frac{k_1 + 2k_2 + 2k_3 + k_4}{6}$$ で計算されます。これにより4次までの誤差項が打ち消され、局所打ち切り誤差は \(O(h^5)\)、全体誤差は \(O(h^4)\) となります。

ステップ幅h上で4つの傾き評価k1〜k4を示すRK4の1ステップの図
RK4は各ステップで4つの傾き推定値(\(k_1\)〜\(k_4\))を組み合わせ、\((x_n, y_n)\)から\((x_{n+1}, y_{n+1})\)へ進みます。

計算例

\(x_0 = 0\)、\(y_0 = 0\)、\(x_n = 1\)、\(n = 10\)(\(h = 0.1\))として \(y' = 1 - y^2\) を解きます。厳密解は \(y = \tanh(x)\) です。最初の RK4 ステップでは \(y_1 = 0.0996679\) となり、\(\tanh(0.1) = 0.0996680\) とよく一致します。10 ステップすべてを終えると \(y(1) = 0.7615942\) となり、\(\tanh(1) = 0.7615942\) と小数点以下7桁まで一致します。

厳密解の曲線とそれに近接して並ぶRK4の数値点を比較した折れ線グラフ
RK4の数値解の点(ドット)は、区間全体で厳密解の曲線によく一致します。

よくある質問

RK4 はオイラー法よりなぜ優れているのですか? オイラー法は1ステップにつき傾きを1回しか使わず、誤差は \(O(h)\) です。RK4 は4回求めて平均するため、同じステップ幅で \(O(h^4)\) の精度が得られ、目標精度に必要なステップ数がはるかに少なくて済みます。

分割数はいくつにすればよいですか? まずは 50 から始めてください。解が滑らかであれば、たいていそれで十分です。急激に変化する問題やスティッフに近い問題では、100、200、500 と増やしてください。

NaN や Infinity が出てしまうのはなぜですか? 解が発散したか、\(F(x,y)\) が無効な演算(負の数の対数やゼロ除算など)に達した可能性があります。式を見直し、区間を狭くするかステップ数を増やして試してください。

最終更新: