所謂"山寨",即低門檻,不嚴謹,還有那麽一些的浮躁。

文章盡量避免匪夷所思的詞匯,雖然某些抽象詞匯會使語言嚴謹而具有更高的概括性,但它們確實不夠山寨。我們從三維空間出發,一路"導出"傅立葉變換的教科書定義。以此感受數學的美妙,自然造化的神氣本文約定:(建議掃一眼然後跳過,用到了再回來看)由於博客網站編輯條件的限製,我隻能用類似計算機程序的式子來表達本可以如藝術品一般美麗的數學表達式。如:

(x,y,z) -----三維空間向量

-------向量v,u之間的夾角

*---------向量間的點積(參考向量點乘的定義)

本文中我們省略數量(標量)乘法的符號

/----------除法運算

proj(x,y)-----x在y上的投影

ex, ey, ez----x軸,y軸,z軸上的單位向量

|v|-------向量v的長度

cos(a) sin(a)--三角函數。

exp(a)------e的a次方。

i---------複數單位

j---------指標,

如 sigma(xj,j=1:n)pi---------圓周率

sigma(xj,j=1:n)-對xi求和,j從1到n。int(f(x),y)---對f(x)在y上求積分,積下限為從負無窮到正無窮。最後請注意括號間的嵌套關係,我們不使用中括號和大括號

我們開始吧,請堅持住。

如果我們有一個三維空間中的向量 v(a,b,c),那麽我們可以把它看作三個向量的和,這三個向量分別是 v在x軸上的投影,v在y軸上的投影和 v在z軸上的投影。即 v = proj(v,x) + proj(v,y) + proj(v,z)

你可以多選幾個不同的向量 v 把它們畫出來觀察。從直觀上,向量 v 越靠近哪個坐標軸,v 在那個軸上的投影越大問題是如果我們知道了 v = (a,b,c) 但我們如何求出 v 在各個坐標軸上的投影?也就是說如何求解proj(v,u)(u可以是三個坐標軸中的任意一個,也可以是其他任意向量)proj(v,u) = v cos();(參考餘弦的定義和含義)proj(v,u) = v (v*u)/(|v||u|);(參考向量夾角的定義)由於|v||u|是兩個數的積,其結果還是一個數,並且我們不打算繼續研究這個積,所以用K來代替它,上式變為:proj(v,u) = v (v*u)/K;

到此,我們看到proj(v,u) 由三部分組成: v, (v*u), K我們要進行一次升華了,請係好安全帶:) 我們關注運算 (v*u)這裏(v*u)是一種人為定義的運算,注意到兩點,1. * 運算是人為義的,2. * 運算不是任意定義的。

在向量中定義 * 運算為:v*u = (vx,vy,yz)*(ux,uy,uz) = (vx ux, vy uy, vz uz)

接下來我們將會看到 * 運算的另一種定義 f(x)*g(x) = int(f(x)g(x),x)

總之那些都是人為定義的,它們還會是其他的形式。

當然我們不能胡亂定義。以上 * 運算的兩種形式其實都滿足一些特定的運算性質,至於是哪些性質,我們就不再展開了,要保持山寨。數學家管那種 * 運算叫 內積。好了我已經說得太多了。

順便提一句,向量也是人為定義在一組運算性質之上的,隻要是滿足那些運算性質的對象,都可以叫向量。

對向量和 * 運算的討論我們先暫停一下,待會兒再接著聊。現在讓我們去請出今天的主角:傅立葉變換我們先來看一看 三角函數係:{cos(0x), sin(0x), cos(1x), sin(1x), cos(2x), sin(2x), ..., cos(nx), sin(nx)}。你盡管把 三角函數 係理解成一個以三角函數為元素的集合。當然實際情況沒有那麽山寨了。三角函數係是組成傅立葉級數的基礎。而傅立葉變換多多少少,甚至直接和人們對傅立葉級數的研究有關係。我們往下看:我們可以把一個周期函數展開為傅立葉級數 f(x) = a0 cos(0x) + b0 sin(0x) + a1 cos(1x) +b1 sin(1x) + ... + an cos(nx) + bsin(nx) (是不是比課本上的展開單純很多?但事實確實就是這樣,怪罪你的課本吧)的問題當然是怎麽確定 aj 和 bj 的大小了。aj = int(f(x)cos(jx), x) / int(cos(jx)cos(jx), x) (j = 0, 1, 2, ..., n)bj = int(f(x)sin(jx), x) / int(sin(jx)sin(jx), x) (j = 0, 1, 2, ..., n)故事發展到這裏,傅立葉變換已經呼之欲出了。在此,我還沒有能力去更進一步地探索傅裏葉變換背後深刻和廣泛分析理論。我們僅懷著虔誠的山寨精神,繼續我們的故事。這裏,我要給出一個簡化的傅立葉變換的定義:g(u) = (1/K)(int(f(x)cos(-2 pi u x),x) + int(f(x)sin(-2 pi u x), x)) (K是一個常數)g(u) = (1/K)int(f(x)(cos(-2 pi u x) + sin(-2 pi u x)), x) (函數積分的可加性)和課本上的定義式不大像是吧,但它說明問題。其中g(u)就是函數f(x)經過傅立葉變換後結果。我們加大放大倍數,仔細觀察g(u)是如何得出的:g(u) = int(f(x)cos(ux), x) / int(cos(ux)cos(ux), x) +int(f(x)sin(ux), x) / int(sin(ux)sin(ux), x)結合上文aj, bj的求解公式,可以觀察到 g(u) 實際上就是 aj + bj。其中:int(cos(ux)cos(ux), x) = int(sin(ux)sin(ux), x) = pi/u 是一個常數,我們把它當公因式提出來就是我們前麵見到的K好了,我們手頭上已經有充足的資料了。讓我們看幾個類比,以此來窺探問題的本質。這些類比都是建立在特定的運算性質基礎之上,並不是信手拈來。

我們把一個向量v(a,b,c) 看作是{ex, ey, ez}中元素的倍數組合而成的,即:v(a,b,c) = a ex + b ey + c ez;同樣我們把一個函數f(x) 看作是{{cos(0x), sin(0x), cos(1x), sin(1x), ..., cos(nx), sin(nx)}中元素的倍數組合而成的,而這裏倍數的直觀表現就是振幅。那麽,f(x) = a0 cos(0x) + b0 sin(0x) + a1 cos(1x) +b1 sin(1x) + ... + an cos(nx) + bn sin(nx);

回顧上文

在向量中定義 * 運算為:v*u = (vx,vy,yz)*(ux,uy,uz) = (vx ux, vy uy, vz uz)

* 運算的另一種定義 f(x)*g(x) = int(f(x)g(x),x) 這個運算我們已經運用到了求解傅立葉級數aj,與bj上了。

不知不覺,我們忽略掉了兩點內容,(1)f(x)的任意周期性,(2)f(x)分解的相位問題。而詳細的探討隻會成為教課書,本文初衷,隻想突出重點,像說曆史一樣說原理,結果,為了說明白問題,某種程度上還是落入了細節的窠臼,搞得思路好亂。

到此,我們再一次升華,請戴好安全帽:) 我們把上文提到的傅立葉變換表達成課本中的形式。

當然,先讓我們來點複數的概念。請原諒我那麽做,這叫"不得不"。

對於複數 z 我們可以將其換種方式表達: z = r cos(x) + i r sin(x) = r exp(i x) 為什麽有那麽多等價的表達?那是因為番茄等於西紅柿,不過它們都是建立在複數的運算性質之上的,你盡管承認。

現在我們回到傅立葉變換的定義上: g(u) = (1/K)int(f(x)exp(-2 i pi u x), x)

我們把 exp(-2 i pi u x) 用正弦和餘弦來表示,即:exp(-2 i pi u x) = cos(-2 pi u x) + i sin(-2 pi u x) 代入 g(u) 得:g(u) = (1/K)int(f(x)(cos(-2 pi u x) + i sin(-2 pi u x)), x) 需要注意:g(u)是一個關於u的函數,通過改變u,我們可以取遍三角函數係,甚至更多。另一個小問題,在g(u)中我們引入了一個 i,在此就讓我們忽略它的存在把,至少本文作者目前認為那個 i 的引入隻是為了運用複數運算性質將 傅裏葉變換 換一種表達方式而已。而在入門教科書中用這種隱晦的表達方式是會妨礙對問題本質的揭示的。

到此,我們小結

所以,傅立葉變換就像三維空間的向量分解一樣單純,但它背後揭示出的是萬物的聯係性。這就是數學的玄妙,造物的玄機。

如果你什麽都沒明白,不要緊,隻要沒有像糟糕的數學課本,惡心的數學課堂那樣,進一步扼殺你的數學積極性與數學天分,那麽我就達到了寫作本文的目的。麵對數學,我懂,要說愛它不容易。