透過 MCP 連接 →

輸入計算

數學公式

廣告

結果

Approximate y at x = 1
0.761577877980713414
以二階 Runge-Kutta(中點)法求得 y_n = f(xn)
步長 h = (xn - x0)/n 0.02
等分份數 n 50
i x_i y_i
0 0 0
1 0.0200000000000000004 0.0199980000000000019
2 0.0400000000000000008 0.0399800071983202471
3 0.0599999999999999978 0.0599300791260564958
4 0.0800000000000000017 0.0798323752456768093
5 0.100000000000000006 0.0996712070597656069
6 0.119999999999999996 0.119431087194065227
7 0.140000000000000013 0.139096777131368088
8 0.160000000000000003 0.158653333288278714
9 0.179999999999999993 0.178086151145683907
10 0.200000000000000011 0.197381007165616462
11 0.220000000000000001 0.216524098251703712
12 0.239999999999999991 0.235502078537144943
13 0.260000000000000009 0.254302093312726574
14 0.280000000000000027 0.272911809937302630
15 0.299999999999999989 0.291319445603977822
16 0.320000000000000007 0.309513791866466770
17 0.340000000000000024 0.327484235861315365
18 0.359999999999999987 0.345220778192424416
19 0.380000000000000004 0.362714047474209156
20 0.400000000000000022 0.379955311558386910
21 0.419999999999999984 0.396936485496481195
22 0.440000000000000002 0.413650136315375394
23 0.460000000000000020 0.430089484706401570
24 0.479999999999999982 0.446248403749321843
25 0.5 0.462121414811006104
26 0.520000000000000018 0.477703680774537398
27 0.540000000000000036 0.492990996767839251
28 0.560000000000000053 0.507979778571714169
29 0.579999999999999960 0.522667048895444131
30 0.599999999999999978 0.537050421713912929
31 0.619999999999999996 0.551128084863663603
32 0.640000000000000013 0.564898781096544900
33 0.660000000000000031 0.578361787788779114
34 0.680000000000000049 0.591516895500573292
35 0.700000000000000067 0.604364385576987795
36 0.719999999999999973 0.616905006974859837
37 0.739999999999999991 0.629139952493357413
38 0.760000000000000009 0.641070834577409543
39 0.780000000000000027 0.652699660854015540
40 0.800000000000000044 0.664028809551470589
41 0.820000000000000062 0.675061004941040266
42 0.839999999999999969 0.685799292929734738
43 0.859999999999999987 0.696247016921744177
44 0.880000000000000004 0.706407794054930038
45 0.900000000000000022 0.716285491907665772
46 0.920000000000000040 0.725884205760389145
47 0.940000000000000058 0.735208236485572653
48 0.959999999999999964 0.744262069129523307
49 0.979999999999999982 0.753050352239556631
50 1 0.761577877980713414

什麼是二階 Runge-Kutta 法計算機?

本工具可在區間 [x0, xn] 上,從初始條件 \(y_0 = f(x_0)\) 出發,數值求解形如 \(y' = F(x, y)\) 的一階常微分方程式(ODE)。它採用二階 Runge-Kutta 法(即中點法),輸出一份 \((x, y)\) 近似值表格,並算出終點解 \(y_n = f(x_n)\)。這是一項通用的數學工具,不受任何國家或法規限制,全球皆可使用。

使用方式

請將方程式右側的 \(F(x,y)\) 以含 \(x\) 與 \(y\) 的數學式輸入(例如 1-y^2x*ysin(x)+y)。接著填入初始點 \(x_0\) 與 \(y_0\)、區間終點 \(x_n\),並選擇等分的份數 \(n\)。系統會將區間切成 \(n\) 等份,每一步的步長為 \(h = (x_n - x_0)/n\)。\(n\) 越大,步長越細,精確度也越高。至於「顯示精度」選項,僅用來控制畫面顯示的有效位數,並不影響實際計算。

公式解析

中點型 Runge-Kutta 法每次推進一步求解:

$$k_1 = h \cdot F(x_i, y_i)$$$$k_2 = h \cdot F\left(x_i + \tfrac{h}{2},\; y_i + \tfrac{k_1}{2}\right)$$$$y_{i+1} = y_i + k_2, \qquad x_{i+1} = x_i + h$$

此法在每一步的中點估計斜率,藉此抵消主要誤差項。其局部截斷誤差為 \(O(h^3)\),整體誤差為 \(O(h^2)\),因此將 \(h\) 減半,誤差大約可降為原本的四分之一。

Advertisement
展示中點斜率估計的示意圖,用於沿解曲線推進一個 RK2 步長
中點法先用斜率 \(k_1\) 找到中點,再用中點處的斜率 \(k_2\) 完成整步推進。

實例演算

求解 \(y' = 1 - y^2\),其中 \(x_0 = 0\)、\(y_0 = 0\)、\(x_n = 1\)、\(n = 50\)(故 \(h = 0.02\))。其精確解為 \(y = \tanh(x)\)。第 1 步:\(k_1 = 0.02 \cdot (1-0) = 0.02\);\(k_2 = 0.02 \cdot (1-0.01^2) = 0.019998\);\(y_1 = 0.019998\)。如此完成全部 50 步後,可得 \(y(1) \approx 0.76159\),與 \(\tanh(1) \approx 0.7615942\) 在小數點後五位上完全吻合。

常見問題

計算結果有多準確? \(n\) 越大,準確度越高,因為整體誤差與 \(h^2\) 成正比。但對於剛性(stiff)方程式或步長過大時,結果可能發散。

\(x_n\) 可以小於 \(x_0\) 嗎? 可以。此時 \(h\) 為負值,方法會沿 \(x\) 軸反向積分,結果同樣有效。

可以使用哪些函式? 支援常見函式:sin、cos、tan、exp、ln、log、sqrt,以及 +、-、*、/、^ 等運算子與括號,還有常數 \(e\) 與 \(\pi\)。

最後更新: