從拆分函數到反轉算子
回頭看看你在這個梯級裡攀過的路。你學會了提出一個邊界值問題,發現它的齊次版本在某些特殊的 lambda 值上才有非平凡解——也就是特徵值及其特徵函數——並利用正交性的魔法,把任意函數寫成一個特徵函數展開。這套展開是個漂亮的求解器:要解 L y = f,你把 y 與 f 都展開成特徵函數,再逐係數匹配。但留意它的代價。你得先找出每一個特徵函數,接著算出一整疊無窮多的積分,再把級數重新加總。這是把分而治之施加到未知函數本身那一層的做法。
格林函數問了一個更銳利的問題。它不去拆分答案 y,而去拆分微分算子的*工作*。邊界值問題寫作 L y = f,其中 L 是一個線性微分算子,例如 L = -d^2/dx^2 再黏上邊界條件。如今 L 是線性的——它服從疊加原理——所以它的行為就像一個作用在函數上的矩陣。那麼對一個矩陣方程 A x = f 你會怎麼做?你去求逆:x = A^(-1) f。本篇全部的把戲,就是去搭出 L 的逆——一個拿到任何 f 就直接把解 y 交給你的物件,只需一個積分,無須再去獵捕特徵函數。
單位一戳:對 delta 的響應
在概念上你怎麼把一個矩陣求逆?你看它如何作用在每一個基底向量 e_j 上,再把 A^(-1) 的各列組裝起來。基底向量的連續版本——一個完全集中在單一點上的尖峰——就是狄拉克 delta delta(x - s):除了 x = s 處之外處處為零,總積分卻為 1。把它想成在單一位置 s 上敲下的一記單位榔頭。格林函數 G(x, s) 字面上就是:當你在 s 處敲一下時,在 x 處量到的系統響應。它解的是 L G = delta(x - s),並帶著原問題所攜的同一組邊界條件。
回報就在這裡,而且整個想法只需一行。任何外力 f(x) 不過是一大堆細小戳擊的連續堆疊:f(x) = 對 s 積分 f(s) delta(x - s) ds。依疊加原理,對這一堆的響應,就是各個響應的堆疊。所以 L y = f 的解就只是 y(x) = 對 s 積分 G(x, s) f(s) ds。外力 f 是「在每個位置 s 該敲多重」的配方;G(x, s) 是對單獨一戳的響應;而那個積分把所有這些響應、以 f 為權重加總起來,重建出完整的答案。格林函數扛起了全部的難處——一旦你有了它,每一個外力 f 都被同一個積分解掉。
親手搭出 G:一個連續卻帶折角的東西
G(x, s) 究竟長什麼樣?在敲擊點 x = s 以外,delta 為零,所以 G 在那裡滿足*齊次*方程 L G = 0。於是在 s 的左側,G 是某個被挑來服從左邊界條件的齊次解;在 s 的右側,是另一個被挑來服從右邊界條件的齊次解。這兩塊在 x = s 處相會,而 delta 完全棲身於它們被接合的方式裡。這正是為何格林函數總是來成兩半——一個分段定義的函數,接縫就在 x = s。
兩個匹配條件在接縫處把兩半縫合起來,它們正是這套構造的靈魂。第一,G 必須在 x = s 處連續——值本身沒有跳躍。第二,它的斜率必須有一個精確的跳變:當你越過 s 時,導數 dG/dx 跳過一個固定的量。為何要折角而非平滑相接?因為一個折角的二階導數是個尖峰——正是我們想造出的那個 delta。G 裡一個純粹的折角,是讓 -d^2G/dx^2 交出一個單位強度 delta 的唯一辦法。對算子 -d^2/dx^2,斜率的跳變恰為 -1;對一般的史特姆-劉維爾算子,它由領導係數 p(s) 決定。
Build G(x,s) for -y'' = f(x), y(0)=0, y(1)=0 on [0,1]:
homogeneous solutions of -y'' = 0 are 1 and x
x < s : G = a*x (kills y(0)=0 since G(0)=0)
x > s : G = b*(1 - x) (kills y(1)=0 since G(1)=0)
match at x = s:
continuity : a*s = b*(1 - s)
slope jump : b*(-1) - a = -1 ( G' jumps by -1 )
solve -> a = 1 - s , b = s
G(x,s) = x(1 - s) for x <= s
s(1 - x) for x >= s ( note: G(x,s) = G(s,x) )對稱性、自伴性,與譜公式
盯著上面的答案看:G(x, s) = G(s, x)。在 x 處感受到的、對 s 處一戳的響應,等於在 s 處感受到的、對 x 處一戳的響應。這種對稱性並非這個例子裡的好運巧合——它是「對稱矩陣有對稱的逆」這件事的連續迴響。它恰恰在 L 被寫成自伴形式時成立,而那正是史特姆-劉維爾問題被精心打造去披上的形式。當初那個保證了實特徵值與正交特徵函數的同一個自伴性,如今保證了格林函數的對稱。本梯級的眾多絲線,其實都是同一根線。
而就在這裡,本梯級的兩大求解器終於握上了手。拿起格林函數,把*它*用 L 的特徵函數 phi_n 展開。因為 L phi_n = lambda_n phi_n,反轉 L 不過是把每一塊除以它的特徵值,於是你得到譜公式:G(x, s) = 對 n 求和 phi_n(x) phi_n(s) / lambda_n。慢慢讀它——它說的是:逆算子由「取每個特徵函數、除以它的特徵值、再求和」搭成。這正是對稱矩陣那條 A^(-1) = 求和 (特徵向量)(特徵向量)^T / lambda 在函數世界的副本。特徵函數展開與格林函數從來就不是對手;它們是反轉同一個算子的兩張臉。
為何要費這個事——以及誠實的細則
你究竟換到了什麼?對給定的算子與邊界條件,格林函數只需算*一次*,之後它就用單一積分 y(x) = 對 s 積分 G(x, s) f(s) ds,為每一個外力 f 解出 L y = f。換掉樑上的載重、棒上沿線的熱源、區域裡的電荷——重跑一個積分,永不必重解微分方程。這正是物理與工程要伸手去拿格林函數的原因:它們是一個系統可重複使用的逆,是對單位源的響應,一旦知道,便回答關於該系統的每一個問題。它們也與參數變異法整齊地並排而立——後者本質上正是用一對基本解搭出同一個核。
現在來談誠實的界限,因為優雅並非萬能。上面那套乾淨的構造倚賴線性:格林函數只對線性算子存在,而你的方程一旦變成非線性,疊加便塌陷,整座建築——delta 分解、響應的加總、逆算子——隨之傾倒。非線性邊界值問題沒有格林函數;那些需要迭代或數值方法。這套方法還假設你真的能解出齊次方程以搭出 G 的兩塊,而對可變係數的算子,這件事本身可能就沒有閉式。
還有兩點值得帶走的告誡。第一,delta 函數並非尋常意義下的函數——它是一個分布,唯有當你把它當作積分裡的一道配方來對待時才是個嚴謹的物件;那個揮手帶過的「無限高尖峰」圖像是個有用的謊言,而積分定義使它變得誠實。第二,格林函數對邊界條件的依賴,不亞於它對算子的依賴:把 y(1) = 0 換成 y'(1) = 0,你就得從頭重建 G——它是*整個問題*的逆,連同旁側條件在內,而非單單那個赤裸算子的逆。把這兩點都記住,格林函數便成為你邊界值工具箱裡最強大的單一工具。