從一個數到一整條函數
在第一卷裡,最佳化是去找一個數:你令導數為零,dy/dx = 0,解出使函數取極小的那個 x。這裡我們要更大膽——在兩個固定端點之間,找出整條最好的曲線 y(x)。我們要極小化的量是一個泛函,通常是積分 J[y] = a 到 b 對 L(x, y, y') dx 的積分,它吞下一整條函數,吐出一個數(一段時間、一段長度、一份能量)。上一篇引入了 J 及其一階變分;本篇把那變分化成一條你能真正求解的方程。
策略完全照抄單變量微積分,只是抬高了一層。為了試探極小函數 y(x),我們去輕推它:把 y 換成 y(x) + epsilon eta(x),其中 eta 是任意一條光滑的「擾動」,並在兩端點處為零(這樣競爭曲線仍穿過同樣的固定端點),而 epsilon 是個極小的旋鈕。代入 J,便得到單變量 epsilon 的普通函數,記作 Phi(epsilon) = J[y + epsilon eta]。若 y 當真最優,則 epsilon = 0 就是 Phi 的普通極小值,於是 dPhi/depsilon 在 epsilon = 0 處必為零——這正是第一卷的臨界點條件。
在積分號下求導
對 Phi 求 epsilon 的導數時,把求導搬進積分號內。由於 L 只通過 y + epsilon eta 及其導數 y' + epsilon eta' 依賴 epsilon,連鎖律給出乾淨的被積式:在 epsilon = 0 處,dPhi/depsilon = a 到 b 對 [ (partial L / partial y) eta + (partial L / partial y') eta' ] dx 的積分。這正是一階變分 delta J。eta 那一項無傷大雅,但 eta' 那一項很礙事——它帶著我們任意擾動的導數,只要 eta 與 eta' 都自由漂浮,我們就什麼都斷定不了。
解法是行內最古老的招數:分部積分,它把 eta' 上的導數換到它前面那個係數上去。記 F = partial L / partial y',第二塊就變成 對 F eta' dx 的積分 = [F eta] 從 a 到 b 減去 對 (dF/dx) eta dx 的積分。邊界項 [F eta] 乾脆消失,因為 eta 被選成在 a 和 b 兩處都為零。正是這一個設計選擇——固定端點逼著擾動在兩端歸零——讓整套方法得以運轉。
基本引理一錘定音
分部積分之後,每個擾動如今只乘著 eta 本身:delta J = a 到 b 對 [ partial L / partial y 減去 d/dx ( partial L / partial y' ) ] eta(x) dx 的積分,而最優性要求這積分對每一條容許的 eta 都為零。此處變分法基本引理挑起大樑:若連續函數 g(x) 對所有在兩端為零的光滑 eta 都滿足 對 g(x) eta(x) dx 的積分 = 0,則 g(x) 恆為零。直覺很犀利——倘若 g 在某個小區間上為正,就挑一條只在那裡隆起的 eta,積分便會算出正值,矛盾。
把那個方括號置零,便是獎賞。歐拉–拉格朗日方程寫作 d/dx ( partial L / partial y' ) 減去 partial L / partial y = 0。要仔細讀:partial L / partial y 與 partial L / partial y' 是把 x、y、y' 當作三個獨立位置來求的偏導數,而最前面的 d/dx 是沿曲線的全導數,它讓 x、y(x)、y'(x) 一起變化——這個區別值得停下來體會,因為混淆二者是本學科裡最常見的錯誤。
J[y] = integral_a^b L(x, y, y') dx (minimize over y, endpoints fixed)
d ( dL ) dL
-- ( --- ) - -- = 0 <- Euler-Lagrange equation
dx ( dy' ) dy
(dL/dy, dL/dy' = partial derivatives; d/dx = total derivative along y(x))走一遍:光線與最短直線
先試最友善的例子:兩點間的最短曲線。弧長為 J[y] = a 到 b 對 sqrt(1 + (y')^2) dx 的積分,故 L = sqrt(1 + (y')^2)。注意 L 裡根本不含 y,所以 partial L / partial y = 0。而 partial L / partial y' = y' / sqrt(1 + (y')^2)。歐拉–拉格朗日方程於是說這個量的 d/dx 等於零,即 y' / sqrt(1 + (y')^2) 為常數——這又逼著 y' 本身為常數。極小者是一條直線,正該如此。機器復現了一條顯然的真理,正因如此你才敢在不顯然的例子上信賴它。
這個例子露出一份饋贈:當 L 不顯含 x(當 L = L(y, y') 時),存在一個首次積分,省去你解一道難纏的二階方程。貝爾特拉米恆等式,L 減去 y' (partial L / partial y') = 常數,直接由歐拉–拉格朗日導出,並把階數降一。正是這條捷徑攻破了懸鏈線懸鏈問題與最速下降的最速降線,它們是後續幾篇的招牌難題——那裡 L 都藏著 x,而貝爾特拉米把一條嚇人的方程化成可分離變量的方程。
配方,以及誠實的小字
- 寫出泛函 J[y] = 對 L(x, y, y') dx 的積分,讀出被積式 L。
- 算出兩個偏導數 partial L / partial y 與 partial L / partial y',把 x、y、y' 當作獨立量。
- 對 partial L / partial y' 取全導數 d/dx(用連鎖律——一般會冒出 y'' 項)。
- 令 d/dx(partial L / partial y') 減去 partial L / partial y = 0;若 L 不顯含 x,改用貝爾特拉米首次積分。
- 解出所得的常微分方程,再用兩個端點值 y(a) 與 y(b) 定下常數。
兩點誠實的提醒。其一,歐拉–拉格朗日只是必要條件:它定位駐定函數,正如 dy/dx = 0 定位駐點,但解可能是極小、極大或鞍點,要證明它當真取極小,需要一個二階判別(對應第一卷的二階導數判別法)。其二,推導悄悄假定了極小者足夠光滑、可二次求導,且允許在積分號下求導;對於性狀惡劣的 L 或不光滑的競爭曲線,這些步驟需更加小心。這條方程強大而核心,卻並非魔法。