一個雜亂的推力,幾個整齊的推力
到此為止,你已能用單一乾淨的外力去驅動一個二階方程:一個多項式、一個指數、一個正弦、一個餘弦。你猜一個形狀相配的特解,定出它的係數,再用共振法則修補任何與 y_c 的衝突。但真實的推力很少是單一乾淨的形狀。一個電路也許被 5 + 2 e^(-x) sin(3x) 驅動;一根彈簧也許同時感受到一股定常的拉力加上一個週期性的猛推。盯著像 g(x) = 4 x^2 + 7 e^(2x) 這樣的外力函數,你究竟能寫出哪一個單一的試解形狀?
答案是:你不寫單一的。你把推力拆開。每當 g 是一些塊的總和,g = g1 + g2 + ... + gk,你就分別為每一塊求一個特解,再把它們相加。你早已擁有的那些單一形狀方法——對好形狀用待定係數法,在猜測失效時改用更笨重的機器——各自一次只處理一個整齊的項,而本文正是那條讓你能把它們瞄準一個總和的法則。
為何把答案相加是被允許的
這許可一如本梯級的慣例,來自算子 L 是線性的。假設 y_p1 解 L[y] = g1,而 y_p2 解 L[y] = g2——兩個分開的受迫問題,各有自己的特解。現在把這兩個函數相加,並把這個和代入 L。線性讓算子能分配到和上:L[y_p1 + y_p2] = L[y_p1] + L[y_p2] = g1 + g2。答案的和,解的正是「被推力之和所驅動」的方程。這一行就是外力疊加的全部。
值得把這看成你先前遇過的同一枚硬幣的第二面。回到第一篇,疊加原理讓你把兩個齊次解相加而仍保持齊次;在這裡,你把兩個特解相加,右邊也跟著相加。同一個引擎,不同的輸出。事實上你可以把兩件事摺成一句話:對線性算子 L 而言,對一個輸入之和的響應,等於對每個輸入各自響應之和。工程師把這個性質正正稱為系統的線性,而這也正是為何一整套理論——頻率響應、轉移函數——能把任何輸入拆解開來,再把輸出重新組裝回去。
L[y] = g1 + g2 + ... + gk (split the forcing)
L[y] = g1 -> y_p1
L[y] = g2 -> y_p2
... ...
L[y] = gk -> y_pk
-----
y_p = y_p1 + y_p2 + ... + y_pk
full answer: y = y_c + y_p
逐步配方
在實務上,這個方法讀起來像一張簡短的檢查表。以例子 L[y] = 4 x^2 + 7 e^(2x) 為例。這個外力本來就是兩個友善形狀的和,所以你把它拆成 g1 = 4 x^2 與 g2 = 7 e^(2x),各用待定係數法求解,再相加。以下是你每次都要跑的完整循環。
- 先求一次 y_c。把右邊設為零,解特徵方程,寫出齊次解。它只取決於 a、b、c,並由每一塊共用。
- 把外力拆成自然的塊 g1、g2、...、gk——每個不同的形狀一塊(每個多項式、每個指數、每組正弦/餘弦)。
- 對每個 gi,單獨解 L[y] = gi,得到一個特解 y_pi。把共振/重複的檢查逐塊處理——拿每個 gi 各自與 y_c 比對。
- 把各特解相加:y_p = y_p1 + y_p2 + ... + y_pk。
- 組裝 y = y_c + y_p,此時才用初始條件 y(0)、y'(0) 配出那兩個任意常數。
留意齊次解在那個循環裡坐落何處:它在第一步算出、在第五步加入,恰好一次,絕不逐塊重複。一個很常見的失誤,是把 y_c(連同它的兩個常數)的副本帶進每個子問題、再把它們加總,最後弄出一堆糾纏的常數。無論你疊加了多少塊外力,永遠只有一個帶兩個常數的通解結構 y = y_c + y_p。
共振要逐塊檢查
整個方法裡最微妙的一點是共振法則,而疊加並不讓你略過它——它反而要你更謹慎地運用它。每一塊 gi 都各自對齊次解做一次重複檢查。某一項也許與 y_c 相撞、需要修正法則所給的那個額外的 x 因子,而它的鄰居——一個形狀全然不同的項——卻能毫髮無傷地通過。你必須就每個外力項各自判斷;一塊裡的衝突,對其餘各塊什麼都沒說。
一幅小小的具體圖像。假設 y_c = C1 cos(x) + C2 sin(x),而你被 g = e^(2x) + 3 sin(x) 驅動。第一塊 e^(2x) 在 y_c 裡無處可尋,所以它的試解 A e^(2x) 不需修正。第二塊 3 sin(x) 恰恰是一個齊次形狀——純共振——所以它的試解必須升級為 x(A cos x + B sin x)。解這兩個子問題、把答案相加,那個共振的塊就會悄悄貢獻出物理共振所要求的振幅漸增項,而另一塊則保持有界。疊加讓這兩種命運不致互相汙染。
疊加能伸多遠——又在何處止步
疊加與兩種特解方法都配合得極美,不只搭配猜測。若某塊是友善的「多項式-指數-三角」形狀,就用待定係數法處理它;若另一塊是某個沒有任何有限猜測能相配的醜東西——一個正割、一個對數、一個分段脈衝——就把那單獨的一塊交給參數變易法,它永遠可行,再把它的答案與其餘各塊疊加。你大可在各塊之間混用方法。像 g = sec(x) + e^x 這樣的外力正是這樣解的:對正割用參數變易法,對指數用待定係數法,然後相加。
要誠實看待這份便利的兩道邊界。其一,疊加嚴格說來是線性的恩賜:它之所以可行,是因為 L 對和具有分配性。一旦方程變成非線性——一個 (y')^2 項、一個乘積 y y'、任何不是「(常數)·(y 的導數)」形式的東西——把答案相加便不再給出一個答案,把 g 拆成塊也買不到任何好處。受迫的非線性方程根本不會這樣分解。其二,這條法則涵蓋的是有限塊的和;把它推廣到「對無窮多個無窮小推力的積分」(把響應寫成對某個脈衝響應的卷積)是一個真實而有力的想法,但它屬於後面的拉普拉斯變換梯級,不在此處。
退一步,看看這個梯級建造了什麼。結構定理說 y = y_c + y_p;待定係數法與共振法則為乾淨的單一形狀找出 y_p;參數變易法則在猜測失效時把它找出;而疊加如今把這一切放開去對付「由多塊相加而成」的外力。它們合起來,給了你一套對付常係數受迫線性方程的完整而誠實的工具箱——並始終提醒你:同樣的結構在可變係數與更難的外力下依然存在,即便它留下的積分無法以閉式算出。