偏微分方程的數值方法

馮諾伊曼穩定性分析(von Neumann stability analysis)

/ fon NOY-mahn /

拉克斯告訴你,對線性格式而言收斂歸結為穩定性——但你究竟如何檢驗穩定性?馮諾伊曼分析是實用的答案,而且具體得令人愉快。想法是:把單一個傅立葉波餵入格式,問格式是讓它在相鄰兩個時間步之間增長還是縮小。若每一個可能的波都保持有界,格式就穩定;若任一個波增長,它終將佔據主導並使解爆破。

操作上:假設誤差形如 u(x, t) = G^n e^(i theta j),這是一個空間頻率為 theta、位於格點 j 與時間層 n 的波,其中 G 是未知的「放大因子」。把它代入差分格式;空間平移會化為 e^(i theta) 與 e^(-i theta) 之類的因子,合併成餘弦,整個式子塌縮為一條關於 G(作為 theta 的函數)的方程。穩定性要求很簡單:對 [0, pi] 中的每個頻率 theta 皆有 |G(theta)| <= 1(若確實預期增長,可放寬為 |G| <= 1 + C dt)。只要有一個 theta 使 |G| 超過 1,該模態便每步被放大,格式即不穩定。

對熱方程的 FTCS 算出來,得 G = 1 - 4r sin^2(theta/2)。最壞情況是 theta = pi,給出 G = 1 - 4r,而要求 |G| <= 1 便逼出 r <= 1/2——這正是 FTCS 的穩定性上限,如今是推導而非猜測得來的。此法快速、無需軟體,且能解釋一個上限為何呈現某種形式。它誠實的限制是:基本形式假設常係數與週期(或無窮)邊界——它忽略邊界效應與變係數,因此是一個必要的局部條件,真實邊界有時會破壞分析所預測的穩定性。

對 u_t + a u_x = 0(a > 0)的迎風格式,可算出 |G|^2 = 1 - 2 c(1-c)(1 - cos theta),其中 c = a dt/h 是庫朗數。這恰在 0 <= c <= 1 時至多為 1——直接從放大因子重現了 CFL 條件。

放大因子把穩定性問題化為簡單的代數。

馮諾伊曼分析嚴格來說是「線性、常係數、無邊界」的工具。通過它是必要的,但對有真實邊界或變係數的問題並不總是充分——邊界不穩定性可能悄悄溜過它。

又称
Fourier stability analysisamplification-factor analysis傅立葉穩定性分析放大因子分析