為何快捷方法會用罄
走到本節的這一步,你已能求解許多右邊帶強迫項的 n 階線性方程。認出強迫項的型態,寫下帶未知係數的試解——或更系統地,拿一個能殺掉強迫項的消去算子作用於整條方程——一個特解便應聲落下。這些方法快,又幾近機械化,這正是它們迷人之處。但留意每個例子下方的那行小字:強迫項總是多項式、指數 e^(rx)、正弦或餘弦,或這些東西的乘積。
這並非偶然——這就是整個限制所在。消去算子法只對那些*本身就是*某個常係數齊次方程之解的強迫項有效,因為唯有它們才存在能使其歸零的算子。於是 sec(x)、tan(x)、ln(x)、1/x 或 x^x 根本沒有消去算子:沒有任何有限的 D 的多項式能把它們送到零。而一旦係數隨變數變化——像 Cauchy-Euler 方程,或更狂野的東西——根本就沒有特徵多項式可言,待定係數法便無立足之地。你需要一個不在乎強迫項長相的方法。
唯一的那個想法,放大到 n 階
你在二階時已見過參數變異法,而其核心把戲一絲未變。從齊次方程的一組基本解組 y1, y2, ..., yn 出發,其通解為 c1 y1 + ... + cn yn。常數 c1, ..., cn 是死重——無論怎麼選,解的仍是齊次問題,永遠不是受迫問題。於是讓常數變動:把每個常數 ck 換成一個未知函數 uk(x),並尋找形如 y_p = u1 y1 + u2 y2 + ... + un yn 的特解。這與降階法出於完全相同的直覺——那裡是把單個常數提升為函數;這裡則是把全部 n 個都提升。
但如今有 n 個未知函數 u1, ..., un,而單一條方程 L[y_p] = g(x) 釘不住 n 個函數——那是 n 個選擇配上一條約束。這份自由是真切的,而本法的高明之處,正在於明智地*花掉*這份自由。當你一次又一次地對 y_p 求導時,每一階導數都會甩出一叢含 uk' 的項。參數變異法在除了最後一步以外的每一階段,都選擇讓那些叢項消失:它施加 n-1 個化簡條件,迫使 uk' 項在直到第 (n-2) 階為止的每一階導數上相互抵消。這既防止式子爆炸,又恰恰提供足夠多的額外方程使系統可解。
蹦出來的那個 Wronskian 系統
塵埃落定時,那 n-1 個抵消條件,加上唯一一條貨真價實的方程 L[y_p] = g,合併成一個關於 n 個未知量 u1', ..., un' 的清爽線性系統。而其係數矩陣並非什麼新怪物——它正是你那組基本解組的 Wronskian 矩陣:第一列是 y1...yn,接著是 y1'...yn',一路下到底列的第 (n-1) 階導數。右邊幾乎全是零,唯有強迫項孤零零地坐在最底下。這個結構值得你凝視:當初用來檢驗你的解是否獨立的同一個 Wronskian,如今擔起了建造特解的工作。
Solve for u1', ..., un' : [ y1 y2 ... yn ] [u1'] [ 0 ]
[ y1' y2' ... yn' ] [u2'] = [ 0 ]
[ : : : ] [ : ] [ : ]
[ y1^(n-1) y2^(n-1) ... yn^(n-1)] [un'] [ g(x) ]
Cramer's rule: uk' = Wk(x) / W(x) ( W = Wronskian determinant )
Integrate: uk = INT [ Wk(x) / W(x) ] dx
Assemble: y_p = u1*y1 + u2*y2 + ... + un*yn
( Wk = W with column k replaced by the column [0, 0, ..., g(x)] )用 Cramer 法則求解,把這個結構漂亮地攤開:uk' = Wk(x) / W(x),其中 W 是 Wronskian 行列式,而 Wk 是同一個行列式,只把第 k 行換成「零接著 g」的那一行。對每個 uk' 積分還原出 uk,組出 y_p,便大功告成。注意 W 住在每個分母裡——而它之所以絕不消失,正因為 y1, ..., yn 構成一組基本解組(獨立的解,其 Wronskian 不為零)。當初使它們成為良好基底的那個條件,正是使本法不致除以零的那個條件。
完整走一遍
以下是把配方提煉成步驟。前三步正是你早已熟悉的二階程序,只是寫成 n 個函數而非兩個;升到高階唯一真正的代價,是行列式變大、簿記變重。
- 把方程化為標準型(最高階係數為 1),並先解齊次部分:找出一組基本解組 y1, ..., yn。參數變異法是一台製造特解的機器——它假定你手上已備妥齊次解。
- 建立 Wronskian 矩陣系統:各列為 y 們及其直到 n-1 階的導數,右邊除最後一格放 g(x) 外全為零。
- 用 Cramer 法則解出 u1', ..., un':uk' = Wk(x) / W(x),其中 W 是 Wronskian,Wk 把第 k 行換成右端那一行。
- 對每個 uk' 積分得到 uk。捨去積分常數——它們只會重建出齊次解,而那部分你會另外加回去。
- 組出 y_p = u1 y1 + ... + un yn,再寫出完整答案 y = (c1 y1 + ... + cn yn) + y_p——齊次加特解,與以往一模一樣的結構。
一個它何以名副其實的滋味:假設你要求 y'' + y = sec(x) 的一個特解。沒有消去算子碰得了 sec(x),於是待定係數法一出場就陣亡。但參數變異法連眼都不眨。齊次解為 y1 = cos(x)、y2 = sin(x),其 Wronskian W = 1,故 u1' = -sin(x) sec(x) = -tan(x)、u2' = cos(x) sec(x) = 1。積分得 u1 = ln|cos(x)|、u2 = x,於是 y_p = cos(x) ln|cos(x)| + x sin(x)。那個對數與那個 x sin(x),正是快捷方法永遠生不出來的那類答案——而它們竟出自一個 Wronskian 系統。
它的代價,以及它接著把你送往何處
對代價要看得清楚。其一,參數變異法保證一個特解*以積分形式*存在——它並不承諾那積分是初等的。公式 uk' = Wk/W 永遠正確,但 Wk/W 的積分可能根本沒有封閉形式,此時誠實的答案就是把解留作積分。這不是失敗;積分本就是定義函數的一種完全正當的方式。其二,n 階的簿記著實沉重:一個 n×n 的 Wronskian、n 個行列式 Wk、n 個積分。本法原則上永遠管用;它是否*愉快地*管用,則視方程而定。
也值得點明參數變異法*不是*什麼。如本節的一切,它完全活在線性理論之內:整個構造依靠疊加原理——依靠 y_p 是齊次解的組合——而一旦出現像 (y')^2 這樣的非線性項,便當場崩塌。它也不是齊次方程的求解器:它消耗一組基本解組,並不生產基本解組。對變係數方程,這意味著在本法甚至能開始之前,你或許仍得動用降階法、已知的特殊函數,或級數方法,才能先取得那些 yk。
有了這一篇,高階這一節便闔上一個圓滿的閉環。你能寫出 n 維解空間,從 n 次特徵多項式讀出它的基,對友善的強迫項施展微分算子與消去算子,馴服變係數的 Cauchy-Euler 情形,而如今——有了參數變異法——能處理*任何*可積的強迫項。接下來的階梯,會把這些手工方法換成新機械:Laplace 變換,它把微分化為代數,並把階躍與脈衝強迫項整個吞下;以及級數方法,用於那些根本不存在初等基本解組的方程。你正要離開封閉形式的國度,而手中握著的,是初等理論所能奉上、最強的通用工具。