預測-校正法(predictor-corrector method)
隱式方法準確又穩定,但它的隱式性很惱人——要找新值,你得解一個把它埋在裡面的方程。預測-校正法用兩階段的招式繞過這點:先用便宜的顯式公式快速做個粗略「猜測」,再把猜測代入算出斜率,並把隱式公式套用「一次」作為修正。你幾乎拿到隱式方法的準確度,卻不必從頭解任何方程。
經典的配對是 Adams-Bashforth 預測器配 Adams-Moulton 校正器。預測:用顯式 Adams-Bashforth 公式由過去斜率得到暫定的 y*_{n+1}。計算:在那裡算斜率 f*_{n+1} = f(t_{n+1}, y*_{n+1})。校正:把這個斜率餵入隱式 Adams-Moulton 公式,得到改良的 y_{n+1}。(可選地再「計算」一次,供下一步的斜率使用。)這個 PECE 序列(Predict-Evaluate-Correct-Evaluate,預測-計算-校正-計算)把隱式方程的精確求解,換成單一的不動點步驟——很便宜,因為對非剛性問題,一次校正就足以承接校正器的階數與大部分穩定性。預測器與校正器之差也兼作局部誤差估計,用來驅動步長控制。
預測-校正對曾是經典高階 ODE 求解器的骨幹,至今在 f 昂貴的非剛性問題上仍常見(每步只用一兩次 f 計算)。誠實的提醒是這招的極限:單一校正之所以可行,是因為對非剛性問題配上適度步長,不動點迭代會收斂。對「剛性」問題,校正器迭代「不會」一次就收斂(你得迭代很多次,反而失去意義),所以在剛性方程上你必須放棄預測-校正的捷徑,改用牛頓法正確地解隱式 BDF 方程。
在 y' = y 上一個簡單的 PECE 步:用顯式歐拉法「預測」y* = y_n + h*f_n;「計算」f* = y*;用梯形法則「校正」y_{n+1} = y_n + (h/2)*(f_n + f*)。當 y_n = 1、h = 0.1:預測 y* = 1.1、f* = 1.1,校正 y_1 = 1 + 0.05*(1 + 1.1) = 1.105。真值 e^0.1 = 1.10517——單一校正把便宜的歐拉預測器提升到二階準確度。
用顯式公式便宜地猜,再用隱式公式校正一次。
單一校正只在不動點迭代會收斂的非剛性問題上承接校正器的階數。在剛性問題上,校正器迭代一次就發散,所以預測-校正是錯的做法——應改用牛頓法直接解隱式方程。