常微分方程的數值方法

絕對穩定區域(region of absolute stability)

當一個方程的真解正安靜地「衰減」時,你會期望數值解也衰減,而不是爆掉。會不會爆,取決於步長:步長太大會讓一個穩定的方法產出越長越大的垃圾。絕對穩定區域就是那張地圖,對某個方法精確告訴你哪些步長能讓數值解保持有界——它是方法的安全運轉區。

我們用同一把簡單的尺檢驗每個方法,那就是線性測試方程 y' = lambda*y,其真解 e^(lambda*t) 在 lambda 的實部為負時衰減。對它套用步長為 h 的方法,會產出 y_{n+1} = R(z)*y_n,其中 z = lambda*h,而 R 是方法的「穩定函數」(顯式方法為多項式,隱式方法為有理函數)。數值解保持有界,恰好當 |R(z)| <= 1。使 |R(z)| <= 1 的複數值 z = lambda*h 所成的集合,就是絕對穩定區域,畫在複數平面上。對前向歐拉法 R(z) = 1 + z,所以區域是圓盤 |1 + z| <= 1,即以 -1 為心、半徑 1 的圓——意指對實的負 lambda 你必須保持 h <= 2/|lambda|,否則爆掉。對後向歐拉法 R(z) = 1/(1 - z),其區域是「整個」左半平面還更多。

這張圖是理解穩定性最有用的單一工具。用法是:找出你問題的快速衰減模態(雅可比矩陣中實部為大負數的特徵值 lambda),你必須選 h 使每個 lambda*h 都落進區域內。誠實之處在於:顯式方法的穩定區域「小」且有界,所以大的負 lambda(剛性模態)逼得 h 極小——這正是剛性的機制。隱式方法可以有「巨大」的區域,覆蓋整個左半平面(A-穩定),讓它們走大步。絕對穩定講的是「不爆掉」;它與準確度是兩回事——一步可以穩定卻不準。

對 y' = -50y,前向歐拉法只在 |1 + h*(-50)| <= 1 時穩定,即 h <= 2/50 = 0.04;在 h = 0.05 時,因子為 1 + 0.05*(-50) = -1.5,|R| = 1.5 > 1,所以 y_n = (-1.5)^n 振盪且無界成長,儘管真解衰減。後向歐拉法的因子 1/(1 + 50h) 對每個 h > 0 都低於 1,所以任何步長都穩定。

在複數平面上畫 |R(lambda*h)| <= 1——每個方法步長的安全區。

絕對穩定關乎有界性,「不」關乎準確度:區域內的一步仍可能不準,而夠準的一步仍可能落在區域外並爆掉。它們是不同的要求,你必須同時滿足兩者。

又称
stability regionabsolute stability region穩定區域絕對穩定域