JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

用變換求解方程

變換把求導變成了普通的乘法,於是一個微分方程就化作尋常的代數。把問題變換過去,解那個容易的版本,再把答案反變換回來——你將看到無窮長桿上的熱方程幾乎是白送地解了出來。

讓變換值得費這番功夫的那一個戲法

在本級前面的幾篇裡,你把[[fourier-transform-pair|傅立葉變換]]看作傅立葉級數在週期延伸到無窮時的極限:一個函數 f(x) 被分解成一段連續的頻譜 F(k),而一個相配的反變換又能從 F 重建出 f。這是看待一個信號的優美方式。但工程師和物理學家天天伸手去取它,原因更實際,而且只是一個事實:變換把「求導」這個動作變成了「相乘」這個動作。一邊的微積分,變成了另一邊的代數。

想想這是為什麼。傅立葉變換把 f 寫成一堆純波 e^{i k x} 的疊加。對 e^{i k x} 求一次導,不過是把它乘以 i k——波的形狀沒變,只是幅度被縮放。所以若 f 是這樣一堆波,取 df/dx 就把第 k 個波縮放 i k 倍,別無其他。翻譯到變換的世界裡,這就是[[fourier-transform-of-derivatives|導數的變換法則]]:若 F(k) 是 f(x) 的變換,則 f'(x) 的變換就只是 (i k) F(k)。求導——屋裡最難的運算——變成了乘以 i k。

用它兩次,二階導數 f''(x) 就變換成 (i k)^2 F(k) = -k^2 F(k)。你往 f 上每疊一次導,就只是給 F(k) 再乘一個 i k 因子。於是一個微分方程——一句把 f 與它的導數們糾纏在一起的話——在變換之後,就變成一句把 F(k) 與 k 的各次冪糾纏在一起的、尋常的代數方程。微積分一點不剩;只需解出 F(k)。這就是全部的策略,而本篇餘下的內容,就是學會信任它、並乾淨俐落地把它執行出來。

法則從何而來,以及關於邊界的那個陷阱

這法則並非魔法;它是一次喬裝過的分部積分。f'(x) 的變換,是 f'(x) e^{-i k x} dx 在整條直線上的積分。做分部積分:導數從 f 上跳下來、落到指數上,貢獻一個因子 -(-i k) = i k,而剩下的邊界項是 f(x) e^{-i k x} 在 x = 正負無窮處的取值。傅立葉變換若想存在,f 在遠處就必須衰減到零,於是那個邊界項乾脆消失——存活下來的,恰好就是 (i k) 乘以 f 的變換。

那個消失的邊界項,是一處真實分別的核心。傅立葉變換活在無窮長的直線上,那裡萬物必須在兩端死去,所以導數法則很乾淨:沒有剩料。但它的表親[[laplace-transform|拉普拉斯變換]]活在從 0 到無窮的半直線上,在 x = 0 處留下了一個邊界項——而那塊存活下來的料,恰好就是初始條件。它的導數法則寫作:f'(t) 的變換是 s F(s) - f(0),f''(t) 的變換是 s^2 F(s) - s f(0) - f'(0)。初始數據不是事後補的;它直接被烤進了代數裡。

三步:變換、求解、反變換

無論方程是什麼,每一種變換方法都是同一支三拍的舞。你離開那個艱難的原始世界,在變換世界裡做輕鬆的活,再回家。慢慢走通一次,它就成了反射。讓我們先在一個你本就能手算的簡單微分方程上跑一遍,純粹為了看清這套機械,然後再把它放出去對付一個你手算不來的偏微分方程。

  1. 變換每一項。用變換打在方程的兩邊上。每個導數變成乘以 i k(傅立葉)或乘以 s 並附帶初始條件的料(拉普拉斯),於是微分方程坍縮成一個關於被變換的未知量 F(k) 或 F(s) 的代數方程。導數們消失了。
  2. 解那個代數。既然路上沒了導數,就用尋常代數把被變換的未知量孤立出來——做除法、做因式分解、做整理。你得到一個關於 k(或 s)與已知數據的、F(k) 或 F(s) 的整潔閉式。這一步償付了整段繞路的代價。
  3. 反變換以回家。對那條公式施行反變換,把原變量裡真正的解找回來。實踐中你很少從頭算那個反變換積分——你在一張變換對照表裡認出各個零件,或者動用卷積定理,把答案讀出來。最難的一步,通常正是這最後一步。

初值問題 y'' + y = 0,附 y(0) = 0、y'(0) = 1,這是一道單位幅度振盪的方程。按拉普拉斯法則,y'' 變換成 s^2 Y(s) - s y(0) - y'(0) = s^2 Y(s) - 1,y 變換成 Y(s)。方程變成 s^2 Y(s) - 1 + Y(s) = 0,純代數;解得 Y(s) = 1/(s^2 + 1)。一張表告訴你 1/(s^2 + 1) 是 sin(t) 的變換——於是 y(t) = sin(t),恰是特徵方程本會給出的那個振盪,但這回是不必猜任何試探解就到了手。用變換解初值問題,縮影正是這般模樣。

壓軸:無窮長桿上的熱方程

現在是回報,一個尋常方法會絆倒的問題。一根無限長的桿有一個初始溫度分佈 f(x),我們想要此後每一時刻的溫度 u(x, t)。支配它的定律是[[heat-equation|熱方程]],一個偏微分方程:du/dt = alpha 乘以 d^2u/dx^2,其中 alpha 是熱擴散率。它牽涉一個對時間的偏導數與兩個對空間的偏導數,糾纏在一起——這正是變換被造出來要斬斷的那種糾纏。

決定性的一步在此:只對 x 做變換——那個跑遍整條直線的變量——讓 t 作為旁觀者原封不動。設 U(k, t) 是 u(x, t) 關於 x 的傅立葉變換。空間導數 d^2u/dx^2 按法則變成 -k^2 U(k, t)。時間導數 du/dt 徑直穿過那個對 x 的積分、變成 dU/dt,仍是一個老實的導數——因為 t 從未被變換。那個嚇人的二元偏微分方程坍縮成 dU/dt = -alpha k^2 U,對每個固定的 k 而言,這不過是一個關於 t 的一階常微分方程。我們把一個偏微分方程,變成了一族平凡的常微分方程,一個頻率配一個。

PDE (in x and t):     du/dt = alpha * d^2u/dx^2 ,   u(x,0) = f(x)

  apply Fourier transform in x only  (d/dx  ->  i k,  d^2/dx^2  ->  -k^2)

ODE (in t, k a parameter):   dU/dt = -alpha k^2 * U ,   U(k,0) = F(k)

  solve this first-order ODE in t:

U(k,t) = F(k) * exp(-alpha k^2 t)        <- spectrum decays, fast modes first

  invert the transform in x to get back u(x,t).
只對 x 做變換,就把熱方程這個偏微分方程對每個頻率 k 變成關於 t 的一行常微分方程;高 k(尖銳)的成分帶著最大的 -alpha k^2,因此衰減得最快。

那個小小的常微分方程 dU/dt = -alpha k^2 U,是活著的最簡單的方程:指數衰減。它的解是 U(k, t) = U(k, 0) e^{-alpha k^2 t},而起始值 U(k, 0) 不過是 F(k),即給定初始分佈 f(x) 的變換。所以 U(k, t) = F(k) e^{-alpha k^2 t}。在反變換之前,先讀出它在物理上說了什麼:每個頻率分量 F(k) 都只是指數地淡去,而淡去的速率 alpha k^2 隨 k^2 增長——於是溫度裡最扭曲、最高頻的部分先死,而寬闊、緩慢的成分則逗留。這就是擴散把一個分佈抹平的過程,用盡可能乾淨的語言道出。

回家:高斯核與卷積

我們手裡有 U(k, t) = F(k) e^{-alpha k^2 t};最後一步是反變換、與 u(x, t) 正面相見。注意答案是兩個變換的乘積:F(k),即初始數據的變換,乘以 e^{-alpha k^2 t}。[[fourier-convolution-theorem|卷積定理]]說:變換世界裡的乘積,是原世界裡的卷積——所以 u(x, t) 是 f(x) 與「某個以 e^{-alpha k^2 t} 為其變換的函數」的卷積。我們只需認出那第二個函數。

而這裡,一位第一卷的老友又走了回來。函數 e^{-alpha k^2 t} 是 k 裡的一條高斯鐘形,而一個深刻、近乎神奇的事實——它由高斯積分(e^{-x^2} 在整條直線上的積分等於 sqrt(pi))證得——是:一條高斯的傅立葉變換,仍是一條高斯。反變換 e^{-alpha k^2 t},得到 x 裡一條歸一化的鐘形曲線:熱核 G(x, t) = (1 / sqrt(4 pi alpha t)) 乘以 e^{-x^2 / (4 alpha t)},一個以原點為心、寬度按 sqrt(t) 增長的小丘。於是解就是 u(x, t) = 初始分佈 f 與這條鋪展開來的高斯的卷積。

與一條鐘形曲線卷積,恰恰就是一次加權的、模糊化的平均:要求點 x、時刻 t 處的溫度,你就在一個鄰域上對初始分佈做平均,給近處的點以重權、給遠處的點以高斯尾巴的輕權。t 越大鐘形越寬,於是越晚的每個溫度,都是對原分佈越來越長一段的平均——熱量從四面八方滲入,分佈越抹越光滑、越平。倘若初始分佈本身就是一根孤獨的熱尖峰,即原點處的一個狄拉克 delta,那麼卷積什麼也不做,答案就是赤裸的核 G(x, t)。那便是基本解:對一個熱點源的響應,是把其餘一切解都靠塗抹建起來的那顆種子。

誠實的邊界,以及該帶走什麼

這方法強大,卻非全能,幾條誠實的提醒能保你平安。其一,反變換是瓶頸:代數那步容易,但把原函數找回來,可能要算一個艱難的反變換積分。實踐中你倚靠表格、卷積定理,或者——對拉普拉斯變換而言——對布羅姆維奇積分做圍道積分,那是你將在本卷稍後遇見的一種複平面技術。反變換不是可以跳過的取巧;它確確實實是活計所在之處。

其二,變換需要對的定義域和衰減。上面的傅立葉方法之所以奏效,恰恰因為桿是無限長的、溫度在兩端死去,於是邊界項消失。在一根兩端固定的有限長桿上,你無法對整條直線做變換;那時你退回到分離變量法與傅立葉級數,即上一級裡那個有限的表親。挑選變換,實則是在挑選一種幾何,而幾何必須相配。其三,一個微妙之處:熱核對任何大於零的 t 處處為正,這意味著熱量在形式上瞬間抵達每一點——這是熱方程作為一個物理模型已知的、誠實的缺陷,而非我們求解中的錯誤。

退後一步,看清整個念頭的形狀。變換把一個世界裡的難題,換成另一個世界裡的易題,因為它把求導對角化了——它讓每一道純波都成為一個本徵函數,導數對它只是重新縮放。變換、解代數、反變換:同樣的三拍,能料理常微分方程、熱方程、波動方程,以及遠不止於此。你如今握著的,是為信號處理、光學、控制論與量子力學供能的那台引擎。後續各級不過是遞給它新的函數家族去作用——而你在這裡建起的那份反射,正是會遷移過去的東西。