辛普森積分法則分為 法則與
法則兩個方法,且同樣具有代數精度
時間複雜度也同樣為,不過
法則的截尾誤差
比
法則
還要小一點
在表現上也是稍優於法則的。
因此,個人在設計上主要是以法則為主,再以
法則為輔。
先來看一下法則的表示式:
其中
以及法則的表示式:
其中
有公式就簡單一點了,照著公式的邏輯去刻程式碼…,大致的思路如虛擬碼(亂寫)
==================================================================
辛普森積分法(Simpson's rule)演算法(Algorithm)
dim a,b as double,n as long,function as double,ε as double
a = x0
b=xn
ε=1E-25
if n mod 2 =0 then
run Simpson's one third rule
elseif n mod 3 = 0 then
run Simpson's three eighth rule
else
run combine Simpson's both rule
end if
do until abs∣result-exact∣ ≤ ε
run result
==================================================================
來測試一下效果如何,以計算為例
其精確解為,程式跑出來的結果如下…。
※順帶一提,上圖的N是經由辛普森積分法反推所需之區間數為何(也就是大概要切多細的意思)。