数值分析裡的中点法(midpoint method)是求解常微分方程的一種数值方法,屬於單步法。

中點法的圖示說明,假設
等於
的實際值。中點法計算
讓紅色的弦近似平行於中點處的切線(綠色)
上式的顯式中點法為
 | | 1e |
隱式中點法為
 | | 1i |
。此處
是步階長度,是一個小的正數,
,而
是計算
的近似值。顯式中點法也稱為是改良的歐拉方法(modified Euler method)[1],隱式中點式是最簡單的配置法(Collocation method),可用在哈密頓力學,也就是辛積分器。
此方法的名稱是因為上述公式會用到函數在
位置的值,也就是在
以及
中點時的值,前者的值已知,後者的值未知,在計算中點的值時,也需要有一些假設,才能進行計算。
配合圖示(見右圖)會比較容易理解此一方法。在原始的欧拉方法裡,會用
,計算曲線在
處的切線。此切線和垂直線
的交點即為下一個點
的值。不過,若此函數的二階導數在時間
和
的區間均為正, 或是均為負(如圖中的例子),隨著
加大,曲線和切線的距離會越來越遠,導致大誤差。圖中所畫的中點的切線(上方,綠線)比較可以近似這段曲線。不過因為要求解的就是此一曲線,時間
的資訊已知,其他資訊不足,可能無法精準的畫出中點處的切線。
因此,會先用原始的歐拉方法估計在中點的
值,再用
以及估計的中點資訊,計算切線斜率。用改善後的切線從
計算
的值。最後一步即為圖的紅色弦線。因為紅色弦線是估計值,用的是
在中點處的估計值,不一定真的會和綠線(真正的中點切線)平行,仍會有誤差。
中點法每一步的局部誤差是
,全域誤差是
。其運算比歐拉方法要大,但在
的過程中,中點法的誤差會比歐拉方法降低的更快。
此法也是高階方法(如龙格-库塔法)的範例之一。