透過 MCP 連接 →

輸入計算

數學公式

廣告

結果

Simpson's rule result (n = 64)
3.1415926535892149
定積分近似值
梯形法
3.1415519634856541
中點法
3.1416129986418473
辛普森法
3.1415926535892149
n 梯形法 中點法 辛普森法
2 3.1000000000000001 3.1623529411764704 3.1333333333333333
4 3.1311764705882354 3.1468005183939427 3.1415686274509804
8 3.1389884944910889 3.1428947295916889 3.1415925024587068
16 3.1409416120413889 3.1419181743085600 3.1415926512248218
32 3.1414298931749749 3.1416740337963374 3.1415926535528360
64 3.1415519634856541 3.1416129986418473 3.1415926535892149

這個計算器能做什麼

本工具會用三種經典的複合數值積分公式,近似函數 \(f(x)\) 在有限區間 \([a, b]\) 上的定積分:梯形法(Trapezoidal Rule)、中點法(Midpoint Rule)與辛普森法(Simpson's Rule)。它不只給你單一答案,而是依序以 2、4、8、16……(每次加倍)的細分數計算每種方法,直到你設定的最大值 \(N\),並列出一張收斂表,讓你親眼看到估算值如何逐漸穩定,自行判斷精確度。

用 a 與 b 之間的垂直條形近似的曲線下面積
數值積分透過累加簡單的條形來估算 \(f(x)\) 從 \(a\) 到 \(b\) 的曲線下面積。

使用方式

請以變數 \(x\) 輸入被積分函數的數學式(例如 4/(1+x^2)sin(x)*exp(-x))。支援的運算子有 + - * / ^ 及括號,另外也支援常見函數如 sin、cos、tan、exp、log/ln、sqrt、abs,以及常數 pi 和 e。設定下限 \(a\) 與上限 \(b\),選擇最大細分數 \(N\)(須為 2 的次方),再決定顯示位數。表頭主要呈現的數字是 \(n = N\) 時的辛普森估算值,因為它通常收斂最快。

公式說明

當分成 \(n\) 個子區間時,步長為 \(h = (b - a)/n\),節點為 \(x_i = a + i\,h\)。梯形法將各點函數值相加,並把兩端點各取一半權重;中點法則取每個子區間中央的函數值;辛普森法以 1、4、2、4、……、4、1 的權重將兩者結合,對三次多項式可得到精確結果,誤差為 \(h^4\) 階,而另外兩種方法則為 \(h^2\) 階。

$$\int_{a}^{b} f(x)\,dx \approx \frac{h}{3}\left[ f(x_0) + 4\sum_{i\,\text{odd}} f(x_i) + 2\sum_{i\,\text{even}} f(x_i) + f(x_N) \right]$$

其中

$$\left\{ \begin{aligned} f(x) &= \text{f(x)} \\ a &= \text{Lower limit} \\ b &= \text{Upper limit} \\ N &= \text{Subdivisions} \\ h &= \frac{b-a}{N}, \quad x_i = a + i\,h \end{aligned} \right.$$
比較曲線下梯形、中點和辛普森條形形狀的三幅圖
三種法則在每個條形如何逼近曲線上有所不同:直線弦、中點平頂矩形和擬合拋物線。

實例演算

以 \(f(x) = 4/(1+x^2)\) 在 \([0, 1]\) 上為例,精確積分值為 \(\pi = 3.14159265\ldots\)。當 \(n = 4\)、\(h = 0.25\) 時,梯形法估算約為 \(3.131176\),中點法約為 \(3.146801\),辛普森法約為 \(3.141569\)——已準確到小數第五位。隨著 \(n\) 增大,三種方法都會逐漸逼近 \(\pi\)。

常見問題

為什麼 \(N\) 一定要是 2 的次方?每次將細分數加倍,能讓你輕鬆比較相鄰各列,同時也保證辛普森法所需的偶數子區間數成立。

哪些函數不適用?收斂表假設被積分函數是平滑(解析)且非週期性的。若 \([a, b]\) 內含奇異點(例如 \(1/x\) 跨過 0),會產生無限大或無意義的結果。

若 \(a\) 等於 \(b\),或 \(a\) 大於 \(b\) 會怎樣?當 \(a = b\) 時積分為 0;當 \(a > b\) 時,結果為在 \([b, a]\) 上積分的帶號(負)值。

最後更新: