中点法

数值分析裡的中点法(midpoint method)是求解常微分方程的一種数值方法,屬於單步法。
: y'(t) = f(t, y(t)), \quad y(t_0) = y_0 .
上式的顯式中點法為
{{NumBlk|:| y_{n+1} = y_n + hf\left(t_n+\frac{h}{2},y_n+\frac{h}{2}f(t_n, y_n)\right), |}}
隱式中點法為
{{NumBlk|:| y_{n+1} = y_n + hf\left(t_n+\frac{h}{2},\frac12 (y_n+y_{n+1})\right), |}}
n=0, 1, 2, \dots。此處h是步階長度,是一個小的正數,t_n=t_0 + n h,,而y_n是計算y(t_n)的近似值。顯式中點法也稱為是改良的歐拉方法(modified Euler method),隱式中點式是最簡單的(Collocation method),可用在哈密頓力學,也就是。

此方法的名稱是因為上述公式會用到函數在t = t_n + h/2= \tfrac{t_n+t_{n+1}}{2}位置的值,也就是在t_n以及t_{n+1}中點時的值,前者的值已知,後者的值未知,在計算中點的值時,也需要有一些假設,才能進行計算。

配合圖示(見右圖)會比較容易理解此一方法。在原始的欧拉方法裡,會用f(t_n, y_n),計算曲線在(t_n, y_n)處的切線。此切線和垂直線t=t_{n+1}的交點即為下一個點 y_{n+1}的值。不過,若此函數的二階導數在時間t_n和t_{n+1}的區間均為正, 或是均為負(如圖中的例子),隨著h加大,曲線和切線的距離會越來越遠,導致大誤差。圖中所畫的中點的切線(上方,綠線)比較可以近似這段曲線。不過因為要求解的就是此一曲線,時間t_n的資訊已知,其他資訊不足,可能無法精準的畫出中點處的切線。

因此,會先用原始的歐拉方法估計在中點的y(t)值,再用f()以及估計的中點資訊,計算切線斜率。用改善後的切線從y_n計算y_{n+1}的值。最後一步即為圖的紅色弦線。因為紅色弦線是估計值,用的是y(t)在中點處的估計值,不一定真的會和綠線(真正的中點切線)平行,仍會有誤差。

中點法每一步的局部誤差是O\left(h^3\right),全域誤差是O\left(h^2\right)。其運算比歐拉方法要大,但在h \to 0的過程中,中點法的誤差會比歐拉方法降低的更快。

此法也是高階方法(如龙格-库塔法)的範例之一。

中點法的推導
中點法可以視為是改良版的欧拉方法
: y_{n+1} = y_n + hf(t_n,y_n),\,
因此用類似的方式推導。
推導欧拉法的關鍵是以下的近似等式

是源自以下的斜率公式
{{NumBlk|:| y'(t) \approx \frac{y(t+h) - y(t)}{h} |}}
,其中 y' = f(t, y).

在中點法中,將(3)改為更準確的式子
: y'\left(t+\frac{h}{2}\right) \approx \frac{y(t+h) - y(t)}{h}
因此可以得到以下類似(3)式,計算 y(t+h)的式子
{{NumBlk|:| y(t+h) \approx y(t) + hf\left(t+\frac{h}{2},y\left(t+\frac{h}{2}\right)\right). |}}

在上式中,因為還不知道y在t+h/2的值,無法用上式直接計算 y(t+h)。解法是用欧拉方法來求解y(t+h/2):
:y\left(t + \frac{h}{2}\right) \approx y(t) + \frac{h}{2}y'(t)=y(t) + \frac{h}{2}f(t, y(t)),
代入(4)式中,可得
:y(t + h) \approx y(t) + hf\left(t + \frac{h}{2}, y(t) + \frac{h}{2}f(t, y(t))\right)
以上則是顯式的中點法(1e)。

隱式中點法(1i)可以將此時間內的波形假設為直線,中間步數t+h/2的值用y(t)和y(t+h)的平均值來表示
:y\left(t+\frac h2\right)\approx \frac12\bigl(y(t)+y(t+h)\bigr)
因此
:\frac{y(t+h)-y(t)}{h}\approx y'\left(t+\frac h2\right)\approx k=f\left(t+\frac h2,\frac12\bigl(y(t)+y(t+h)\bigr)\right)

因為隱式方法的時間對稱性,局部誤差中h的偶次項都消去了,局部誤差的階數是\\mathcal O(h^3)。
相關條目

  • 黎曼和
  • Heun方法
  • 蛙跳积分法和韦尔莱积分法

腳註
參考資料
*

  • .

*

评论 (0)

  • 还没有评论,来抢沙发吧。