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

我們為什麼需要廣義函數

在這道階梯上,方程一次又一次交給我們一些並非老實函數的答案:一個尖角、一個跳躍、一個點源、一道帶有陡峭波前的波。這開篇的一篇要論證:問題不在我們的題目,而在我們的語言——而拓寬「函數」一詞的意思,正是這整階要動手做的那個修補。

一連串尷尬答案的模式

回頭看看你已經爬過的那幾階,留意一個安靜的模式。波動方程 即使在 f 帶有尖角時,也照樣愉快地搬運一個剖面 u(x, t) = f(x - c t)——把弦撥成一個三角形,那個角就直接隨波而行,但角是個 u_xx 在普通意義下並不存在的地方。一條純量 守恆律 從完全平滑的資料出發,卻在有限時間內 製造出 一個不連續,一道 震波,此後 u 發生跳躍,它的導數在波前處顯然沒有定義。基本解背後的點源構想,要求我們把一個在某一點為無限的物件餵給算子。每一個情形裡,數學都在逼我們接受一個答案,而我們對「解」的定義在法律上根本容納不下它。

一個謹慎初學者的直覺是去懷疑題目:也許資料太粗糙了,也許模型錯了,也許我們乾脆把這些鋸齒狀的答案扔掉算了。這直覺很誠實,但事實證明它放錯了地方。隨弦而行的尖角是 物理上真實的——那正是一條被撥動的弦實際會做的事。震波是 物理上真實的——它是音爆的那一聲巨響,或塞車車陣陡然的邊緣。這些不是該被驅逐的病態;它們是大自然在堅持。過錯不在現象,而在我們一直在用的 函數 這個詞太狹隘了。

導數才是真正的瓶頸

把焦點拉近,看看到底是什麼壞掉了,因為它不是初學者所預期的那個。一個跳躍或一個尖角本身並不是災難——我們幾乎在每一點都能眼也不眨地讀出 u(x, t) 的值。災難在於 導數。偏微分方程是一個 關於導數 的方程:u_t = k u_xx、u_tt = c^2 u_xx、Laplacian u = 0。光是要在尖角處把方程寫下來,你就得在那裡組出 u_xx,而在尖角處 u_xx 是真真切切、無可修補地沒有定義的。函數本身好好的;對它微分才是那個墜崖的動作。

這裡有個應該以正確方式困擾你的小例子。取絕對值帳篷 u(x) = |x|。它的斜率在零的左邊是 -1、右邊是 +1,所以一階導數是一個在原點跳躍 2 的階梯——已經不是平滑意義下的函數了,但還能忍。 微分一次,你就是在問一條平直線突然向上一躍 2 之後的斜率:除了在 x = 0 處有一個總量為 2 的無限尖峰外,斜率處處為零。那個尖峰根本不是任何普通函數。然而它恰恰是一個二階方程的 基本解 會交還的那種物件,所以我們不能乾脆拒絕去面對它。

u(x)   = |x|              (continuous tent, fine)
u'(x)  = sign(x)          (jumps by 2 at x = 0 : already not classical)
u''(x) = 2 * delta(x)     (zero away from 0, an infinite spike of weight 2 at 0)

               so:   what could 'the second derivative of |x|' even mean?
對一個看似人畜無害的帳篷老實地求兩次導數,我們就已經把函數的世界拋在身後了。最後一行的尖峰,正是喬裝過的狄拉克 δ。

兩條出路,以及我們為何棄絕那條膽小的

面對那些並非古典可微的答案,數學在歷史上走過兩條路。膽小的那條路是死守舊有的「解」的定義——一個 古典解 必須擁有方程所指名的全部導數,並在每一點都作為真正的極限存在——然後乾脆宣布那些粗糙的情形不予受理。這讓規則保持乾淨,卻付出殘酷的代價:它會把被撥動的弦、音爆、對點源的響應、以及熱核全都流放出境,而這些全都既真實又重要。一個無法談論自己方程最自然的解的理論,不是一個完工的理論。

大膽的那條路——也就是這一階所走的路——是去拓寬語言,而不是扔掉答案。我們把願意稱之為「函數」的東西、願意稱之為「導數」的東西加以擴大,謹慎而嚴謹地,直到那些尷尬的答案成為完全合法的公民。尖角、跳躍、甚至無限的尖峰,全都獲得了老實的定義;方程於是能對它們提問、也能得到回答。這就是 廣義函數(又稱分佈)的誕生,以及那能對古典微積分拒絕碰觸的東西求導的 分佈導數 的誕生。

訣竅:別再問值,改問平均

你到底要怎麼給一個無限尖峰一個老實的定義?那個決定性的構想——這整階一切的種子——是別再試圖用一個物件在 每一點的值 去釘住它,而改用它 被拿來對著平滑探針求平均時所做的事 去釘住它。你永遠不問「這尖峰在 x = 0 處是多少?」——那是個無解的問題。你問「這尖峰對著這個漂亮平滑的鼓包加權平均後是多少?」——而這總是有個乾淨的答案。你拿來檢驗用的那些平滑鼓包,就是 測試函數:無限可微、在一個有限窗口之外就關掉、要多乖有多乖。

看看 |x| 例子裡那個尖峰,在這副透鏡底下表現得多麼完美。我們從不在原點對它取值;我們只把它和一個平滑探針 phi 配對,而答案不過就是「讀出 phi 在 0 處的值」。那一條篩選規則,integral of delta(x) phi(x) dx = phi(0),就是 狄拉克 δ 一個完整、毫不含糊的描述——沒有無限要搏鬥、沒有除以零,只有對每個探針都給出的一個乾淨數字。於是,一個廣義函數的定義不靠一張圖,而靠那條 把一個數字指派給每一個測試函數的規則——一個線性泛函。這就是整個觀念上的躍進,而下一篇會把它說精確。

同一個求平均的訣竅,也正是拯救 導數 的東西。要老實地對一個帶尖峰的物件求導,你把那個導數 轉交給平滑的探針:你把 分佈導數 定義成讓分部積分按規定成立,把 d/dx 從粗糙的物件身上挪到 phi 身上,而 phi 永遠承受得起。因為 phi 無限平滑,這個動作從不失敗——所以在這個被拓寬的世界裡,萬物皆可微,要幾次有幾次。這不是個小小的便利;它正是那個讓整套偏微分方程的機械能在粗糙資料上運轉、永不熄火的性質。

我們得到什麼,以及誠實的附帶細則

靠這一個轉變,一整叢頑固的問題悄悄地化解了。狄拉克 δ 成了個正當的物件,於是滿足 L E = delta 的基本解成了一個精確的陳述,而不是揮揮手帶過。一個不連續的震波成了它那條守恆律一個貨真價實的 分佈解。帶著行進尖角的被撥動的弦,是波動方程一個正當的解。而傅立葉變換——它在古典上會被不衰減的函數噎住——也能被推廣到作用在這些廣義物件上,那正是第四篇緩增分佈背後的引擎。一個觀點的改變,換來長長一串的修補。

現在來看誠實的附帶細則,因為拓寬一個理論從來不是完全免費的。第一,你放棄了 逐點的值:去問狄拉克 δ「在某一點」的值是沒有意義的,因為一個分佈只知道它對著測試函數的那些平均。第二,而且更令人意外的是,你大致上放棄了 乘法——一般而言你不能把兩個分佈相乘還保持嚴謹(δ 乘 δ 沒有老實的意義),這正是為什麼非線性偏微分方程抗拒這套框架,並需要像 熵條件 這樣額外的構想來挑出正確的答案。第三,一個 弱解 或分佈解,有時靠自己 並不唯一,缺失的物理必須靠手工補回去。

這些都不是該藏起來的缺陷——它是一件老實工具的樣貌,而把界限事先講明,正是讓你日後不至於誤用它的關鍵。所以這就是這一階的地圖。第二篇搭起測試函數,並把一個 分佈 定義為它們上的一個線性泛函。第三篇把狄拉克 δ 與分佈導數弄得徹底嚴謹。第四篇把傅立葉變換推廣到緩增分佈。第五篇把這一切兌現,給出一個 基本解 的嚴謹意義。到了最後,你一路蒐集來的那些尷尬答案,不只會被容忍——它們會恰好落在理論所說它們該住的地方。