透過 MCP 連接 →

輸入計算

數學公式

廣告

結果

y(xn) — approximate value at endpoint
0.7652614605
Euler approximation with step size h = 0.02
切分段數 n 50
步長 h 0.02
k xk yk
0 0 0
1 0.02 0.02
2 0.04 0.039992
3 0.06 0.0599600128
4 0.08 0.0798881087
5 0.1 0.0997604665
6 0.12 0.1195614235
7 0.14 0.1392755248
8 0.16 0.1588875714
9 0.18 0.1783826662
10 0.2 0.1977462587
11 0.22 0.216964187
12 0.24 0.2360227179
13 0.26 0.2549085834
14 0.28 0.2736090157
15 0.3 0.2921117778
16 0.32 0.310405192
17 0.34 0.3284781643
18 0.36 0.3463202062
19 0.38 0.3639214525
20 0.4 0.3812726761
21 0.42 0.398365299
22 0.44 0.4151914008
23 0.46 0.4317437228
24 0.48 0.4480156699
25 0.5 0.4640013091
26 0.52 0.4796953648
27 0.54 0.495093212
28 0.56 0.5101908662
29 0.58 0.5249849718
30 0.6 0.5394727874
31 0.62 0.5536521696
32 0.64 0.5675215551
33 0.66 0.5810799408
34 0.68 0.5943268629
35 0.7 0.6072623745
36 0.72 0.6198870226
37 0.74 0.6322018242
38 0.76 0.6442082413
39 0.78 0.6559081561
40 0.8 0.6673038459
41 0.82 0.6783979575
42 0.84 0.6891934817
43 0.86 0.6996937286
44 0.88 0.7099023023
45 0.9 0.7198230767
46 0.92 0.7294601715
47 0.94 0.7388179287
48 0.96 0.74790089
49 0.98 0.7567137752
50 1 0.7652614605

這個計算器能做什麼

本工具採用經典的前向(顯式)尤拉法,對形如 \(y' = F(x, y)\)、初始條件為 \(y(x_0) = y_0\) 的一階常微分方程進行數值求解。它會從 \(x_0\) 出發、以 \(n\) 個等距步長前進到 \(x_n\),並回傳步長 \(h\)、完整的 \((x, y)\) 近似值數值表,以及終點的近似解 \(y(x_n)\)。

使用方式

請以 \(x\) 與 \(y\) 為變數,將右端項 \(F(x, y)\) 輸入為數學運算式(支援 + - * / ^ 運算子、括號,以及 sin、cos、exp、log/ln、sqrt、abs 等函數,還有常數 pi 與 e)。接著設定起點 \(x_0\)、初始值 \(y_0\)、終點 \(x_n\),並選擇切分段數 \(n\)。\(n\) 越大代表步長越小,結果通常也越精確。

公式解析

步長為 $$h = \frac{x_n - x_0}{n}$$ 而格點為 \(x_k = x_0 + k \cdot h\)。從 \(y_0\) 開始,每個新值依下式計算:$$y_{k+1} = y_k + h \cdot F(x_k, y_k)$$——也就是在目前位置取斜率 \(F\),再以寬度 \(h\) 沿直線前進一步。此方法為一階精度,因此整體誤差約與 \(O(h)\) 成正比。

Advertisement
歐拉法沿切線從一點推進到下一點
每一步歐拉法沿切線斜率 \(F(x,y)\) 前進一個步長 \(h\),逐漸偏離真實曲線。

範例演算

以 \(y' = 1 - y^2\)、\(x_0 = 0\)、\(y_0 = 0\)、\(x_n = 1\)、\(n = 5\) 為例,步長 \(h = 0.2\)。逐步迭代可得 \(y_1 = 0.2\)、\(y_2 = 0.392\)、\(y_3 = 0.5612672\)、\(y_4 \approx 0.6982668\)、\(y_5 \approx 0.8007513\)。因此尤拉法在 \(x = 1\) 的估計值約為 \(0.8008\)。由於精確解為 \(\tanh(x)\),\(\tanh(1) \approx 0.7616\);只要加大 \(n\),尤拉法的結果就會逐漸逼近此真實值。

含 x 欄與 y 欄的歐拉迭代步驟表
此例題逐步建立一張表,列出直到終點 \(x_n\) 的 \(x_k\) 與 \(y_k\) 值。

常見問題

為什麼我的答案和精確解不一樣?尤拉法只有一階精度,誤差大致與 \(h\) 成正比,因此選擇較大的 \(n\)(較小的步長)就能提升準確度。

\(x_n\) 可以小於 \(x_0\) 嗎?可以。此時步長 \(h\) 會變成負值,相同的遞迴式便會往回(反向)積分。

支援哪些函數?包含 sin、cos、tan、asin、acos、atan、sinh、cosh、tanh、exp、log/ln、log10、sqrt 與 abs,以及常數 pi 與 e。

最後更新: