MCPで接続 →

計算を入力してください

公式

広告

結果

Approximate y at the final x = 1
0.135296935
y' (= p) at that point: -0.1351841876
計算法 2次ルンゲ・クッタ法(中点法)、局所誤差 O(h^3)
刻み幅 h 0.02
ステップ数 n 50
x y y' = p
0.0000000000000000 0.0000000000000000 1.0000000000000000
0.020000000000000000 0.019200000000000000 0.92240000000000000
0.040000000000000000 0.036894720000000000 0.84934720000000000
0.060000000000000000 0.053172670463999996 0.78060434278399990
0.080000000000000000 0.068117735709081600 0.71594578469232630
0.10000000000000000 0.081809400586607000 0.65515694969774430
0.12000000000000001 0.094322966500334410 0.59803380843614800
0.14000000000000000 0.10572975724910819 0.54438238107427720
0.16000000000000000 0.11609731515993502 0.49401826294618173
0.18000000000000000 0.12548958795637377 0.44676617193727500
0.19999999999999998 0.13396710678720436 0.40245951663989300
0.21999999999999997 0.14158715582126055 0.36093998434738000
0.23999999999999996 0.14840393379607325 0.32205714799495050
0.25999999999999995 0.15446870789053943 0.28566809119500390
0.27999999999999997 0.15982996027517107 0.25163705055227820
0.30000000000000000 0.16453352767755470 0.21983507448028827
0.32000000000000000 0.16862273428543417 0.19013969777498171
0.34000000000000000 0.17213851829528548 0.16243463123452180
0.36000000000000004 0.17511955240035207 0.13660946564564497
0.38000000000000006 0.17760235849882816 0.11255938948719588
0.40000000000000010 0.17962141689018327 0.090184919730279480
0.42000000000000010 0.18120927021549250 0.069391645142043710
0.44000000000000010 0.18239662238604734 0.050089981526471296
0.46000000000000013 0.18321243273344676 0.032194938360768685
0.48000000000000015 0.18368400560378675 0.015625896310044324
0.50000000000000010 0.18383707560845658 0.00030639512601406127
0.52000000000000010 0.18369588873438927 -0.013836068542494098
0.54000000000000010 0.18328327950738588 -0.026870233878397654
0.56000000000000020 0.18262074439331474 -0.038861259595601230
0.58000000000000020 0.18172851161356454 -0.049870899020389145
0.60000000000000020 0.18062560754308220 -0.059957666948328710
0.62000000000000020 0.17932991985163985 -0.069176998652447110
0.64000000000000020 0.17785825754163154 -0.077581401401623160
0.66000000000000030 0.17622640802868705 -0.085220598832054500
0.68000000000000030 0.17444919140468865 -0.092141668499290240
0.70000000000000030 0.17254051201637852 -0.098389172923625410
0.72000000000000030 0.17051340748663180 -0.10400528442760995
0.74000000000000030 0.16838009529963238 -0.10902990405100074
0.76000000000000030 0.16615201706561347 -0.11350077481565485
0.78000000000000040 0.16383988057550042 -0.11745358960059915
0.80000000000000040 0.16145369975070850 -0.12092209387579109
0.82000000000000040 0.15900283258849274 -0.12393818353188411
0.84000000000000040 0.15649601719860975 -0.12653199803260615
0.86000000000000040 0.15394140602262482 -0.12873200910612914
0.88000000000000040 0.15134659832296904 -0.13056510518203110
0.90000000000000050 0.14871867102481567 -0.13205667177110950
0.92000000000000050 0.14606420798999050 -0.13323066797637725
0.94000000000000050 0.14338932779845207 -0.13410969931504166
0.96000000000000050 0.14069971010936450 -0.13471508702311555
0.98000000000000050 0.13800062067043317 -0.13506693400652098
1.0000000000000004 0.13529693504097162 -0.13518418759510423

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

このツールは、\(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)\) です。

広告
2階ODEを2つの連立1階方程式に帰着させる模式図
y' = p を用いて、2階の常微分方程式を2つの連立1階方程式に書き換える。
RK2中点法がステップの中点で傾きを推定する様子を示す図
中点RK2法は最初の傾きを求め、次に区間の中点での傾きを使って解を進める。

計算例

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以下の数の対数、負の数の平方根などの問題が起きると、積分が停止し、その発生位置が表示されます。

最終更新: