MCPで接続 →

計算を入力してください

y'' = F(x, y, y') の右辺。x, y, p と + - * / ^、sin, cos, exp, log, sqrt, pi, e が使えます。

公式

広告

結果

xn における y
0.135335274181834636
終点での y の値
xn における y'
-0.135335259156935755
終点での y'(= p)の値

Method: classic 4th-order Runge-Kutta (RK4) · steps n = 50 · step size h = 0.02

i x y = f(x) y' = p
0 0 0 1
1 0.0200000000000000004 0.0192157866666666649 0.922357866666666637
2 0.0400000000000000008 0.0369246498212522645 0.849267048373009037
3 0.0599999999999999978 0.0532152204359356007 0.780489998192799184
4 0.0800000000000000017 0.0681714957894921647 0.715800800394514436
5 0.100000000000000006 0.0818730665794356605 0.654984623530822985
6 0.119999999999999996 0.0943953333479264356 0.597837198534814762
7 0.140000000000000013 0.105809712710295489 0.544164320702777649
8 0.160000000000000003 0.116183833853126500 0.493781374492720526
9 0.179999999999999993 0.125581725747898248 0.446512880115091604
10 0.200000000000000011 0.134063995506174150 0.402192060937331175
11 0.220000000000000001 0.141687998283193534 0.360660430767116402
12 0.239999999999999991 0.148507999118433237 0.321767400120490987
13 0.260000000000000009 0.154575327084229969 0.285369900620602468
14 0.280000000000000027 0.159938522096849084 0.251332026710574419
15 0.299999999999999989 0.164643474728420641 0.219524693900195078
16 0.320000000000000007 0.168733559342904987 0.189825312800676715
17 0.340000000000000024 0.172249760864668727 0.162117478234802465
18 0.359999999999999987 0.175230795474316581 0.136290672741392865
19 0.380000000000000004 0.177713225513107781 0.112239983823256881
20 0.400000000000000022 0.179731568864560570 0.0898658343166999773
21 0.419999999999999984 0.181318403069687717 0.0690737252883046882
22 0.440000000000000002 0.182504464420687129 0.0497739908911289108
23 0.460000000000000020 0.183318742266808804 0.0318815646377390433
24 0.479999999999999982 0.183788568755511195 0.0153157565716578320
25 0.5 0.183939704221884465 4.08419086883604621E-8
26 0.520000000000000018 0.183796418429634401 -0.0141381467925742240
27 0.540000000000000036 0.183381567857668515 -0.0271676019807839605
28 0.560000000000000053 0.182716669217487304 -0.0391535357516522645
29 0.579999999999999960 0.181821969378139686 -0.0501577498528595900
30 0.599999999999999978 0.180716511867434454 -0.0602388038506180140
31 0.619999999999999996 0.179418200110394555 -0.0694521743669628405
32 0.640000000000000013 0.177943857558579527 -0.0778504068142278072
33 0.660000000000000031 0.176309284856870752 -0.0854832599702608359
34 0.680000000000000049 0.174529314187597984 -0.0923978437225306121
35 0.700000000000000067 0.172617860925471212 -0.0986387502945474809
36 0.719999999999999973 0.170587972730655124 -0.104248179253945611
37 0.739999999999999991 0.168451876201472006 -0.109266056588119206
38 0.760000000000000009 0.166221021202630853 -0.113730148120445823
39 0.780000000000000027 0.163906122979543406 -0.117676167527839340
40 0.800000000000000044 0.161517202164191437 -0.121137879208628521
41 0.820000000000000062 0.159063622773142788 -0.124147196238530849
42 0.839999999999999969 0.156554128293666411 -0.126734273641762762
43 0.859999999999999987 0.153996875949458961 -0.128927597194074095
44 0.880000000000000004 0.151399469233258754 -0.130754067964697240
45 0.900000000000000022 0.148768988789577172 -0.132239082794837953
46 0.920000000000000040 0.146112021726915342 -0.133406610901388389
47 0.940000000000000058 0.143434689435146284 -0.134279266785993751
48 0.959999999999999964 0.140742673980222749 -0.134878379621434813
49 0.979999999999999982 0.138041243145009956 -0.135224059279484138
50 1 0.135335274181834636 -0.135335259156935755

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

このツールは、\(y'' = F(x, y, y')\) の形で表される2階常微分方程式を、古典的な4次ルンゲ・クッタ法(RK4)を用いて区間 \([x_0, x_n]\) で数値的に解きます。右辺 \(F\) を \(x\)・\(y\)・\(p\)(\(p\) は \(y'\) を表します)の数式として入力し、初期条件 \(y(x_0)\) と \(y'(x_0)\)、区間の端点、そして分割数を指定するだけで、\(x\)・\(y\)・\(y'\) の値の一覧表と端点での値が得られます。純粋な数値解析の手法であり、特定の国や制度に依存せず、どこでもそのまま使えます。

使い方

\(F(x, y, p)\) を入力します。たとえば \(y'' + 4y' + 4y = 0\) なら -4*p - 4*y と入力します。\(x_0\)、\(y_0 = f(x_0)\)、\(p_0 = y'(x_0)\) を設定し、終点 \(x_n\) と分割数 \(n\) を選びます(\(n\) を増やすほど刻み幅 \(h = (x_n - x_0)/n\) が小さくなり、精度が高まります)。表示する有効桁数も指定できます。RK4 の全体誤差は \(O(h^4)\) なので、\(n\) を2倍にすると誤差はおよそ16分の1になります。

計算式の解説

2階常微分方程式は、\(p = y'\) とおくことで2本の1階方程式の連立系に変換できます。すなわち \(y' = p\)、\(p' = F(x, y, p)\) です。RK4 では各ステップで4つの傾き(\(y\) 用の \(k\)、\(p\) 用の \(j\))を重み付きで評価し、\((k_1 + 2k_2 + 2k_3 + k_4)/6\) および \((j_1 + 2j_2 + 2j_3 + j_4)/6\) として組み合わせ、両方の未知数を同時に進めます。

広告
y''=Fを連立系y'=pおよびp'=F(x,y,p)に帰着させる様子を示す模式図
2階常微分方程式を、yとp = y'に関する連立1階系に書き換えます。
xからx+hまでの1ステップにおける4つのRK4傾き推定値k1〜k4を示す図
RK4は1ステップで4つの傾きの推定値を組み合わせ、解をxからx+hへ進めます。

計算例

\(y'' = -4p - 4y\) を、\(x_0 = 0\)、\(y_0 = 0\)、\(p_0 = 1\)、\(x_n = 1\) として、刻みを1ステップだけ(\(n = 1\)、\(h = 1\))で計算してみます。4段階の評価から \(k_1=1\)、\(k_2=-1\)、\(k_3=2\)、\(k_4=-5\)、\(j_1=-4\)、\(j_2=2\)、\(j_3=-6\)、\(j_4=12\) が得られ、 $$y(1) = \frac{1 - 2 + 4 - 5}{6} = -\frac{1}{3} = -0.3333,$$ $$p(1) = 1 + \frac{-4 + 4 - 12 + 12}{6} = 1$$ となります。厳密解は \(y = x e^{-2x}\) なので、\(y(1) = e^{-2} = 0.1353\) です。つまり \(h = 1\) という1回の大きなステップでは粗すぎることが分かります。\(n = 50\) や \(100\) にすれば、厳密解にぴたりと収束します。

よくある質問

逆向き(過去方向)に積分できますか? できます。\(x_n\) を \(x_0\) より小さく設定すれば刻み幅 \(h\) が負になり、\(x_0\) から \(x_n\) へ向かって積分されます。

ステップ数が少ないと答えがおかしいのはなぜ? RK4 の精度は刻み幅の小ささに依存します。結果が変化しなくなるまで \(n\) を増やしてください。

F にはどんな関数が使えますか? + - * / ^、括弧、sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, exp, log/ln, log10, sqrt, abs、および定数 pi と e が使えます。

最終更新: