把外力重新打開
在上一個梯級,你已精通那條「沉默」的方程:a y'' + b y' + c y = 0,一個右邊空無一物的二階齊次方程。你學到它的解活在一個二維空間裡,任兩個獨立解就能張成其餘所有解,而特徵方程透過它的三種情形,把那兩個基本形狀交到你手上。那是一個完全被放任自流的系統——一根被放開、任其自行振盪衰減的彈簧。
現在我們把外力重新打開。在右邊放上某個非零的東西,你就得到一個非齊次方程,a y'' + b y' + c y = g(x),其中 g 是一個已知的外力函數——來自系統外部的推力。在物理上,這是「自由擺動的單擺」與「按某種時程被推動的同一單擺」之間的差別,或是「正在放電鬆弛的電路」與「被牆上插座驅動的電路」之間的差別。整個梯級的工作,就是找出所有讓方程在右邊掛著那個 g 時依然成立的函數 y。
結構定理
整個梯級就懸於這一個念頭之上。假設你已用某種方法找到完整方程的一個解 y_p,滿足 L[y_p] = g——稱它為特解,任何一個能完成任務的函數都算。現在隨便取另一個解 y,看它與 y_p 的差 y - y_p。把這個差代入 L,並運用線性:L[y - y_p] = L[y] - L[y_p] = g - g = 0。這個差解的是齊次方程。於是,受迫方程的每一個解,都是「一個固定的特解」加上「沉默方程的某個解」。
把這個觀察反過來看,就是通解結構定理。完整的解集合寫成 y = y_c + y_p。這裡 y_p 是你的某一個特解,而 y_c 是齊次解——亦即齊次方程 L[y] = 0 的完整通解,正是你上一級已會寫出的東西。由於 y_c 帶有兩個任意常數(上一級的二維解空間),y = y_c + y_p 也恰好帶有兩個常數——對二階方程而言,這正是該有的數目。
L[y] = g (the forced equation)
y = y_c + y_p
| | |
general ALL of ANY one
solution L[y]=0 solution of
(2 consts) L[y]=g
兩項工作,乾淨地分開
y = y_c + y_p 的美妙之處在於,它把一個難題拆成兩個較小、各自被透徹理解的問題,而且兩者互不干擾。第一項工作是求 y_c:把右邊換成零,解特徵方程,然後像你整個上一級所做的那樣寫下齊次通解。外力函數 g 在這裡完全不參與——y_c 只取決於係數 a、b、c,只取決於機器本身,而從不取決於是什麼在推它。
第二項工作是只求一個能對應特定 g 的特解 y_p。你不需要最漂亮或最簡單的那一個,而且絕不可在它上面附加任何任意常數——一個具體的函數就夠了。接下來四篇全都在講第二項工作:待定係數法的「有根據的猜測」、當你的猜測與 y_c 相撞時的重複/共振修正、永遠可行的參數變易法機制,以及一次處理多項外力的技巧。是結構定理為這一切發了許可證。
一幅你能握住的圖像
想像一根有阻尼的彈簧,被一隻穩定而週期性的手推動著。特解 y_p 是穩態響應:彈簧最終安定下來的運動,與推力的節奏鎖在一起。齊次解 y_c 則是暫態:彈簧自身的自由晃動,由你起始的方式所激發,隨著阻尼把它吃掉而逐漸消逝。真實的運動就是這兩者相加——一陣會熄滅的初始騷動,留下被驅動的節奏在後。
這正是工程師如此在意這個拆分的原因。對一台穩定、有阻尼的機器而言,齊次部分會衰減到零,因此過一陣子就只剩 y_p,系統便「忘記」自己當初是怎麼被啟動的。這就是穩態的意涵:純粹由外力決定的長期行為。暫態 y_c 則是啟動時的那陣顫抖。但要誠實看待這個假設——這種乾淨的消逝只在齊次解確實衰減時才發生,也就是特徵根的實部為負時。若毫無阻尼,便沒有任何東西會死去,y_c 會與 y_p 並肩,永遠鳴響下去。
為何一切都是線性在幹活
值得停下來想想為何結構如此整潔,因為箇中緣由同時也是一個警告。拆分 y = y_c + y_p、疊加原理,以及「把解相加」這件事本身的意義,全都奠基於 L 是線性的。一旦方程變成非線性的——比方說 a y'' + b (y')^2 + c y = g,帶著那個平方項——線性便瓦解,這一切都無法存活。你不能把一個齊次解加到一個特解上還指望得到一個解;這整套舒適的架構,是線性世界的特權。
即便在線性世界之內,也要把兩個誠實的但書放在眼前。其一,結構定理保證 y = y_c + y_p 涵蓋了每一個解,卻從不保證 y_p 容易求——對任意的 g,根本可能不存在任何閉式特解,而後面講參數變易法那篇所給的答案,往往停留在無法用初等函數算出的積分上。其二,當我們靠猜測尋找 y_p 時,整套作法假設係數 a、b、c 為常數;若係數可變,連齊次部分本身都可能沒有初等公式。對線性方程而言,這個結構是精確且普遍的;但實際執行起來容不容易,則另當別論。