一、什么是數(shù)值積分?
數(shù)值積分是計算定積分?jǐn)?shù)值的方法和理論。在數(shù)學(xué)分析中,給定函數(shù)的定積分的計算不總是可行的。許多定積分不能用已知的積分公式得到精確值。數(shù)值積分是利用黎曼積分等數(shù)學(xué)定義,用數(shù)值逼近的方法近似計算給定的定積分值。借助于電子計算設(shè)備,數(shù)值積分可以快速而有效地計算復(fù)雜的積分。
數(shù)值積分的必要性源自計算函數(shù)的原函數(shù)的困難性。利用原函數(shù)計算定積分的方法建立在牛頓-萊布尼茲公式之上。然而,原函數(shù)可以用初等函數(shù)表示的函數(shù)為數(shù)不多,大部分的可積函數(shù)的積分無法用初等函數(shù)表示,甚至無法有解析表達(dá)式。例如常見的正態(tài)分布函數(shù):
的原函數(shù)就無法用初等函數(shù)表示。
不僅如此,在很多實際應(yīng)用中,只能知道積分函數(shù)在某些特定點的取值,比如天氣測量中的氣溫、濕度、氣壓等,醫(yī)學(xué)測量中的血壓、濃度等等。另外,積分函數(shù)有可能是某個微分方程的解。由于很多微分方程只能數(shù)值求解,因此只能知道函數(shù)在某些點上的取值。這時是無法用求原函數(shù)的方法計算函數(shù)的積分的。
另外,當(dāng)積分區(qū)域是曲面、三維形體以至于高維流形時,牛頓-萊布尼茲公式不再適用,只能使用更廣泛的格林公式或斯托克斯公式,以轉(zhuǎn)化為較低維數(shù)上的積分,但只能用于少數(shù)情況。因此,只能使用數(shù)值積分計算函數(shù)的近似值。
二、數(shù)值積分的常見公式
1. 矩形公式
就是常見的黎曼和,在切割小矩形時,可選擇使用左矩形或右矩形。
左矩形公式:
右矩形公式:
左右矩形公式的區(qū)別如下圖所示:
左矩形公式
右矩形公式
2. 梯形公式
與矩形公式不同,梯形公式直接將點連接,當(dāng)Δx→∞時,這看起來更接近于與真實面積:
3. 辛普森公式
辛普森公式是更高級并且在實際中精確度更高的公式,它的核心思想是面積≈ 底邊長×平均高度。高度是有權(quán)重的,為了計算平均高度,試圖將點用拋物線相連,每個拋物線連接三個相鄰的點:
這里直接給出結(jié)果。上圖從x0到x2的面積可計為:
總面積:
三、數(shù)值積分的應(yīng)用
示例1
計算y = 1/x在x = 1和 x = 2之間與x軸圍成的面積:
下面是不同計算方法的對比。
實際面積:
梯形公式:
辛普森公式:
這個例子中,辛普森公式遠(yuǎn)比梯形公式精確,實際上,|真實值 – 辛普森值| ≈ (Δx)4,如果Δx = 0.1,辛普森值將非常接近真實值。
示例2
用梯形公式和辛普森公式估算
梯形公式:
辛普森公式:
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點擊了解:
一點編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程