midpoint method v.s. trapezoid method 中點公式與梯形公式的優劣對比[數值積分]


在計算數值積分時,中點公式和梯形公式是兩個最基本的方法,其計算公式如下:

\[\begin{align*} \text{Midpoint Method:}\quad & I_{M} = (b-a)f\Big(\frac{a+b}2\Big) \\ \text{Trapezoid Method:}\quad & I_{T} = (b-a)\Big[\frac{f(a)+f(b)}2\Big] \\ \end{align*} \]

相應的,如果記\(M = \max_{a\le x\le b} |f''(x)|\),則基於二階導數信息的誤差估計如下:

\[\begin{align*} |E_M| \le \frac{M(b - a)^3}{24}\\ |E_T| \le \frac{M(b - a)^3}{12} \end{align*} \]

於是,我們發現了一個令人驚異的事實——盡管梯形公式用了比中點公式更多的點,其誤差的上界反而不如中點公式,通俗地說,理論上講,中點公式是一種讓人更安心的公式,因為理論上,它造成的最大的誤差會小於梯形公式。

事實上,有很多情況,中點公式確實是優於梯形公式的:

  1. 當函數是三次函數的時候,中點公式的誤差恰好是梯形公式的誤差的-1/2倍;
  2. 當函數是凹/凸函數時,梯形公式會造成過少/過多的估計,而中點公式能夠中和這種凹凸性,從而使結果更精確;
  3. 當函數的二階導數變化不快,也即近似於三次函數時,中點公式的誤差差不多也是梯形公式的誤差的-1/2倍。

那么,梯形公式真的有那么不堪么?其實,也不盡然,首先,前述誤差估計是對上界的一個估計,它並不一定反映了實際誤差間的關系。也即有些時候,梯形公式的誤差的確是要小於中點公式的。

這里我找到了一個簡單的例子:

\[\begin{align*} f(x) = & \operatorname{sigmoid}(x) = \frac{\exp(x)}{\exp(x)+1}\\ \int_{-9}^{11} f(x)\, \mathrm{d}x \approx & 10.99999\\ I_M = & 20\times f(1) = 14.6212 \\ I_T = & 20\times \Big[\frac{f(-9)+f(11)}2\Big] = 10.0011 \\ E_M = & 3.6213 \\ E_T = & -0.9988 \end{align*} \]

此時,顯然有\(|E_T| \le |E_M|\),結合圖形觀察可以發現,對於這種導數在中點附近變化劇烈的情況,梯形公式在某種意義上是一種比中點公式更穩定的選擇。

另外,在數值ode,pde中,中點公式和梯形公式對應的時間離散格式也是有完全不同的數值表現的,今天不具體展開了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM