技術教程

Gibbs 現象

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

我的閱讀清單
回報錯誤/提出問題

文章網址:https://skckenneth.github.io/zh/writing/2024-07-24-blog-post-2/

閱讀位置只會保存在這個瀏覽器,與「稍後閱讀」清單分開。

文章目錄 2 個章節

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

Gibbs 現象

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

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

我的專案

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

sign⁡(x)={−1 if x<01 if x≥0\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⁡(2k−12nπ),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)−Tn−1(x).T_{0}(x)=1,\quad T_{1}(x)=x,\quad T_{n+1}(x)=2xT_n(x)-T_{n-1}(x).

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

按 Escape 關閉。