技術導讀

Gibbs 現象

延續數值分析系列,介紹用有限 Fourier 係數近似不連續函數時,在跳躍附近持續出現的過衝與振盪。

2024年7月24日 · 約 1 分鐘閱讀

延續數值分析系列,本文討論 Gibbs 現象。上一篇介紹了以高次多項式插值時可能出現的 Runge 現象;Gibbs 現象則是近似具有不連續點的函數時出現的相關問題。

Gibbs 現象

Gibbs 現象出現在 Fourier 級數近似中。當有限數目的 Fourier 係數用來近似函數時,不連續點附近會出現振盪。

若函數含有跳躍不連續,Fourier 級數近似會在跳躍附近產生過衝與下衝。增加 Fourier 係數數目並不會令這些振盪完全消失;振盪區域會收窄,但峰值偏差仍然存在。這種行為稱為 Gibbs 現象。

我的專案

這個專案使用 Python 呈現 Gibbs 現象。我以 Chebyshev 多項式近似符號函數,並觀察不連續點附近的振盪。符號函數定義為:

sign(x)={1 if x<01 if x0\operatorname{sign}(x)=\left\{\begin{array}{ll} -1 & \text { if } x<0 \\ 1 & \text { if } x \geq 0 \end{array}\right.

作為複習,Chebyshev 多項式是一組定義於 [1,1][-1,1] 的正交多項式,常用於數值分析中的插值與函數近似。Chebyshev 節點定義為

xk=cos(2k12nπ),k=1,2,,n,x_{k}=\cos \left(\frac{2 k-1}{2 n} \pi\right), \quad k=1,2,\ldots,n,

而 Chebyshev 多項式可遞迴定義為

T0(x)=1,T1(x)=x,Tn+1(x)=2xTn(x)Tn1(x).T_{0}(x)=1,\quad T_{1}(x)=x,\quad T_{n+1}(x)=2xT_n(x)-T_{n-1}(x).

專案結果亦製作成 HTML 互動視覺化: