偏微分方程的數值方法:有限差分

數值色散(numerical dispersion)

在真實的波動方程中,每個波長都以相同速度 c 行進,故由許多波長組成的脈衝移動時保持形狀——尖銳的閃點仍是尖銳的閃點。許多有限差分格式打破這點:它們使不同波長以略不同的速度行進,於是脈衝的各分量彼此漂移,曾經乾淨的形狀長出一串拖尾的漣漪。那種假性的、隨波長而異的速度就是數值色散——格式發明了方程沒有的色散。

它是放大因子的「相位」出錯,與耗散的大小誤差互為夥伴。寫 g = |g| * e^(i*phi(theta));相位 phi 告訴你每個傅立葉模式每步前進多遠,即該波數的數值速度。對精確的 PDE,相位應對所有 theta 對應同一速度 c。在真實格式中,數值速度取決於 theta——通常短波長(高 theta,近鋸齒)落後且行進太慢,故解中變化最快的部分掉隊,在尖銳前緣後產生特徵性的振盪尾跡。連零耗散(|g| = 1)的蛙跳也受色散之苦:它對解析不良的模式相位略錯。

實務徵兆明確無誤:被輸運的不連續或尖銳梯度長出擺動,尤其是拖在其後的短波長漣漪(類吉布斯振盪),即使沒有損失振幅。它在網格勉強解析特徵之處最糟——每波長只有幾個點——並隨你細化網格而改善,因為解析良好的長波相位近乎正確。誠實的要點:色散與耗散是獨立的瑕疵(格式可有其一而無其二),高階與譜方法大幅降低色散,且常刻意加一點耗散把色散擺動阻尼成可接受的東西。

以庫朗數小於 1 的蛙跳輸運一個方波:階梯保持正確高度(無耗散),卻在其後緣長出一串短波長漣漪,因為鋸齒模式比平滑模式行進得慢。細化網格,漣漪縮小;加一點迎風耗散,它們被阻尼掉。

不同波長以不同速度漂移——乾淨的前緣長出擺動的尾跡。

色散與耗散是「分開」的缺陷:色散是扭曲形狀卻保持振幅的相位(速度)誤差,耗散是抽乾振幅的大小誤差。無耗散的格式(蛙跳)可嚴重色散,這正是為何純能量守恆格式在尖銳特徵附近仍產生振盪尾跡。每波長更多點是對策。

又稱
phase errornumerical wave-speed error相位誤差數值頻散