JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

線性常微分方程的結構

在解任何一個線性方程之前,你其實已經能看見它的整副骨架。一個算子、一條疊加原理,整個解空間便扣合成一種優美而剛硬的形狀——齊次加特解,搭在一組用一個行列式就能檢驗的基礎解系之上。

為什麼「線性」是那道大分界線

翻開幾乎任何一本物理或工程教材,你會一遍遍看到同樣的方程:彈簧上的質量塊、電路裡的電流、振動的弦、冷卻的物體、受載的樑。它們共有的不是題材,而是形狀——它們全都是線性微分方程。在一階級裡,你把線性與非線性之分當作一個分類標籤遇見。現在我們要把這個標籤兌現成真金白銀,因為對線性方程來說,回報極其豐厚:有一整套理論,能在你算出任何一個解之前,就告訴你每一個解的*形狀*。

回想一下確切的形式。一個 n 階常微分方程是線性的,是指它能寫成 a_n(x) y^{(n)} + ... + a_1(x) y' + a_0(x) y = g(x),其中每個係數 a_k(x) 和右端 g(x) 都只依賴 x——絕不依賴 y。未知量 y 及其導數都只以一次冪出現,彼此從不相乘,也從不被裹進正弦或平方裡。只要你一瞥見 y^2,或 y 乘 y',或 sin(y),我們即將搭建的整套結構就會坍塌,因為非線性方程根本不肯配合。本級裡的一切,都住在這個線性模板之內。

把方程打包成一個算子

下面這一步,能把一長串鋪開的公式,變成你可以乾淨俐落地思考的東西。把所有作用在 y 上的部分,收進一個符號 L,即線性微分算子。定義 L = a_n(x) d^n/dx^n + ... + a_1(x) d/dx + a_0(x)。它是一台機器:餵給它一個函數 y,它就還給你另一個函數 L[y] = a_n(x) y^{(n)} + ... + a_0(x) y。有了這套記號,整個方程縮成兩個字符外加一項驅動:L[y] = g(x)。左邊是系統;右邊的 g(x) 是在驅動它的東西——一記推力、一個電壓、一個熱源。

何必費這個事?因為 L 擁有那條為它命名的性質:線性。對任意兩個函數 y_1、y_2 和任意常數 c_1、c_2,都有 L[c_1 y_1 + c_2 y_2] = c_1 L[y_1] + c_2 L[y_2]。算子徑直穿過求和與縮放。這不是記號上的巧合——它恰恰就是你在第一卷裡已經信賴的兩個運算所具有的同一性質:求導是線性的,(c_1 f + c_2 g)' = c_1 f' + c_2 g',而定積分也是線性的。L 只由求導和乘以 x 的函數搭成,於是它繼承了它們的線性。這一條代數事實,就是整套理論生長出來的種子。

疊加:線性的饋贈

現在看看線性能做什麼。設 g(x) = 0,於是方程是 L[y] = 0——我們稱它為齊次方程,沒有驅動力的系統,任它自己振響。若 y_1 與 y_2 都是解,即 L[y_1] = 0 且 L[y_2] = 0,那麼對任意常數都有 L[c_1 y_1 + c_2 y_2] = c_1 L[y_1] + c_2 L[y_2] = c_1 · 0 + c_2 · 0 = 0。它們的組合也是一個解。這就是疊加原理,意義深遠:齊次線性方程的解可以隨意相加、縮放,而你始終待在解集之內。這些解構成一個向量空間

從物理上想象一下。撥一根吉他弦,它可以以基音振動,或第一泛音,或第二泛音——而弦的真實運動,不過是所有這些振動模式的某種加權和,全都同時進行。疊加就是這樣一句數學陳述:各模式彼此互不干涉,每一個都像別的不存在那樣演化,總和就是它們之和。往池塘裡丟兩塊石頭,漣漪交錯穿過,乾淨俐落,高度對高度地相加。那種乾淨的相加,就是線性被看見的樣子,也正因如此,我們才能把一個難題分解成簡單的幾塊,逐塊求解,再把答案加回去。

齊次加特解:那個主分解

現在把驅動力請回來,g(x) 不為零,我們面對的是完整的非齊次方程 L[y] = g。下面是這門學問最重要的一條結構性事實。假設你不知怎麼找到了完整方程的某一個解 y_p,即 L[y_p] = g——稱它為一個特解。設 y 是任何另一個解,L[y] = g。相減:L[y - y_p] = L[y] - L[y_p] = g - g = 0。於是差 y - y_p 滿足齊次方程。因此,完整方程的每一個解,都是一個固定的特解,加上齊次方程的某個解。

寫成一句口號:y = y_h + y_p,即齊次加特解分解。L[y] = g 的通解,等於 L[y] = 0 的解 y_h(攜帶全部自由常數)加上 L[y] = g 的任何一個特解 y_p。這就把整樁活兒劈成兩個相互獨立的部分,後面幾篇指南會用截然不同的工具分別去攻。齊次部分 y_h 刻畫系統自身的行為——它天然的振響、它的衰減——而特解部分 y_p 刻畫它對 g 的受迫響應,也就是它被驅動項推搡的方式。

一個日常畫面就把它定住了。和著你手的節奏推鞦韆上的孩子:長期來看,運動會穩定到你推動的節拍上——那個穩定的受迫運動就是 y_p。但鞦韆是如何從靜止過渡到那個節拍的,開頭那陣漸漸消退的搖晃,就是 y_h。完整的運動是二者之和。工程師們成天這麼說:總響應等於瞬態(齊次)加穩態(特解)。數學和物理說的是同一句話,而正是這個分解,使得「先解齊次方程,再找任一特解,然後相加」成為本級裡每一個線性常微分方程的通用配方。

數解的個數:無關性與朗斯基行列式

齊次解構成一個向量空間——可它有多大?對一個 n 階線性方程,答案恰好是 n:L[y] = 0 的解空間維數為 n。這與你上一級見過的一個事實深深呼應——n 階方程需要 n 個初始條件;在這裡,同一個 n 又作為你必須找到的獨立解的個數重新現身。要把整個空間搭起來,你需要一組基:n 個真正彼此不同的解,沒有哪一個只是別的回聲。準確的說法是線性無關——除非每個 c_k 都為零,否則任何非平凡的組合 c_1 y_1 + ... + c_n y_n 都不可能是零函數。

可函數是滑溜的——你究竟該怎麼去檢驗無關性?盯著 y_1 = e^x 和 y_2 = e^{2x},你感覺它們不一樣,但你想要一個判據。答案是一個由這些函數及其導數搭成的行列式,即朗斯基行列式 W。對兩個函數 W(x) = y_1 y_2' - y_2 y_1',正是矩陣 [y_1, y_2; y_1', y_2'] 的行列式;對 n 個函數,你堆疊 n 行逐次的導數。規則很乾淨:若 y_1, ..., y_n 是同一個 n 階線性齊次方程的解,那麼它們線性無關,當且僅當它們的朗斯基行列式不為零。一個非零的數,在某一個方便的點上算出來,就證明了你這組候選解確實張成了整個空間。

Test y1 = e^x and y2 = e^{2x}  (both solve y'' - 3y' + 2y = 0)

      | y1    y2   |   | e^x    e^{2x}  |
  W = |            | = |                |
      | y1'   y2'  |   | e^x    2 e^{2x} |

    = e^x * 2 e^{2x}  -  e^{2x} * e^x
    = 2 e^{3x} - e^{3x}
    = e^{3x}        nonzero for every x  =>  independent.
兩個解的朗斯基行列式,逐步算出來:e^{3x} 永不為零,所以 e^x 與 e^{2x} 無關,二者一道構成這個二階方程的一組基。

基礎解系,以及前路的配方

把 n 階齊次方程的 n 個能通過朗斯基檢驗的解湊齊,你就有了一組基礎解系——整個解空間的一組基。無一例外,每一個齊次解都是這 n 個解的疊加:y_h = c_1 y_1 + c_2 y_2 + ... + c_n y_n,帶 n 個任意常數 c_k。這些常數,恰恰就是你為滿足 n 個初始條件而要旋的那 n 個自由旋鈕。基礎解系是骨架;常數是你為貼合某個具體問題而添上的血肉。

退後一步,看這整座建築穩穩立著。要解任何一個線性常微分方程 L[y] = g,下面就是完整的綱領,它從不改變:

  1. 為齊次方程 L[y] = 0 找一組基礎解系 y_1, ..., y_n——n 個獨立的解,由非零的朗斯基行列式確認。對常係數方程,下一篇指南用一個代數特徵方程就把這一步做完。
  2. 用疊加寫出齊次通解 y_h = c_1 y_1 + ... + c_n y_n,眼下把那 n 個常數全都留作自由。
  3. 為完整方程 L[y] = g 找出任意一個特解 y_p——用待定係數法或參數變易法,那是本級後面某篇指南的工具。
  4. 把它們相加:通解是 y = y_h + y_p。直到此刻才施加初始條件,它們定死那 n 個常數,把整族解塌縮成唯一真正的答案。

這就是線性常微分方程的全部結構,而你在解任何難題之前,就已經把它握在手裡了。算子 L 把方程打包;線性給出疊加;疊加使齊次解成為一個維數等於階的向量空間;一組基礎解系是你用朗斯基行列式認證的一組基;而非齊次的答案,就是把那整族齊次解平移一個特解。本級餘下的每一篇指南——特徵方程、振盪與共振、藉由導數驅動的矩陣指數求解的方程組——都不過是在填這套綱領的第 1 步和第 3 步。骨架始終不動。