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

線性常微分方程組與矩陣指數

把若干個相互耦合的方程摞成一個向量方程 dx/dt = A x,於單個方程上建起的整套機器便披著矩陣回來了。特徵值取代了根,矩陣指數 e^{At} 取代了 e^{rt},而僅憑一個 2x2 矩陣,你一眼就能看出這股流是結點、是鞍點、是螺線,還是中心。

從一摞方程到一個向量方程

至此,本級裡每一個方程都只有一個未知函數。可世界很少一次只遞給你一個。兩個互相交換鹽水的水箱、兩個用彈簧相連的質量塊、捕食者與獵物、一個雙迴路電路裡的電流——其中每一個裡,都有幾個量一同變化,而每一個的變化率都依賴於其餘所有的量。這種耦合正是要害所在:不連同其餘一起解,你就解不出任何一個。一個線性常微分方程組把這件事誠實地打包起來。把未知量寫成一個向量 x(t) = [x_1(t); x_2(t); ...; x_n(t)],運動法則便成為 dx/dt = A x,其中 A 是一個 n 乘 n 的常係數矩陣。我們只談常數 A,這一情形既可解又無處不在。

有兩個事實,讓這不止是整潔的記號。其一,單個高階方程其實是喬裝的方程組。取阻尼振子 u'' + b u' + k u = 0。把速度命名為 v = u',於是 u' = v 且 v' = -k u - b v;寫成向量形式,令 x = [u; v],你便得到 dx/dt = A x,其中 A = [0, 1; -k, -b]。每一個 n 階線性方程都這樣地、通過把導數引作新變量,攤平成一個規模為 n 的一階方程組。方程組並不是一個另立門戶、更難啃的題目——它正是整套線性常微分方程理論最終所用的天然語言。

其二,本級第一篇裡的整套結構性理論原封不動地存活了下來,只是換上了向量的裝束。方程組 dx/dt = A x 是齊次且線性的,所以疊加原理依舊成立:把兩個解向量相加、縮放,你仍待在解集之內。一個 n 維方程組的解構成一個 n 維向量空間,我們需要 n 個獨立的解向量去張成它。把 x(t) 不要想成一組數字,而想成一個移動的點——在 n 維狀態空間裡描出的一個粒子,而 A x 正是那個速度的向量場,在每個位置上告訴這個點該往哪兒去。解這個方程組,就是找出那個點如何流動。

特徵值法:猜一個沿直線的解

我們怎麼撬開 dx/dt = A x?把當初解開單個方程的那個念頭偷過來。對一個標量方程 x' = a x,答案是 x = e^{at}:一個指數函數,因為對它求導只不過是乘以 a。試試向量的類比物——猜想這個方程組有一個永遠保持同一方向、只隨時間放大或縮小的解:x(t) = e^{lambda t} v,其中 v 是一個固定的非零向量,lambda 是一個數。求導:dx/dt = lambda e^{lambda t} v。代入方程:lambda e^{lambda t} v = A (e^{lambda t} v) = e^{lambda t} A v。約去那個永不為零的標量 e^{lambda t},微積分便徹底消失,只剩一個純代數問題:A v = lambda v。

那個方程 A v = lambda v,正是線性代數裡的特徵值問題。一個其方向被 A 保持不變的向量 v——A 只把它按因子 lambda 伸縮——叫做特徵向量,而 lambda 是它的特徵值。這就是特徵值法:A 的每一對特徵對 (lambda, v) 都遞給你一個沿直線的解 e^{lambda t} v,一條永遠沿著過 v 的那條直線行進的軌跡,lambda > 0 時膨脹,lambda < 0 時朝原點坍縮。特徵向量正是那些特殊的方向,沿著它們,相互纏繞的耦合方程便解開,化為簡單、獨立的指數增長——它們是方程組的天然坐標軸。

要找特徵值,把 A v = lambda v 改寫成 (A - lambda I) v = 0,其中 I 是單位矩陣。一個非零向量 v 能滿足它,唯有當矩陣 A - lambda I 把它碾成零——而這恰好發生在該矩陣奇異之時,即 det(A - lambda I) = 0。這個行列式是關於 lambda 的一個多項式,即特徵多項式,其根就是特徵值。請留意這美妙的回響:對單個阻尼振子,你曾解一個關於指數 r 的特徵方程;在這裡,正是同一類多項式,如今由一個行列式生出,遞給你那些指數 lambda。那個單一方程,向來不過是這件事的 1 乘 1(或友矩陣)的影子。

Solve  dx/dt = A x   with   A = [ 1,  1 ;  4,  1 ]

Characteristic polynomial:
  det(A - lambda I) = | 1-lambda    1     |
                      |   4      1-lambda |
   = (1-lambda)^2 - 4 = lambda^2 - 2 lambda - 3 = (lambda-3)(lambda+1)
   =>  lambda = 3,  lambda = -1

Eigenvectors:
  lambda = 3 :  (A-3I)v=0  -> -2 v1 + v2 = 0  -> v = [1; 2]
  lambda = -1:  (A+I)v=0   ->  2 v1 + v2 = 0  -> v = [1; -2]

General solution (superpose the two straight-line solutions):
  x(t) = c1 e^{3t} [1; 2]  +  c2 e^{-1 t} [1; -2]
2x2 方程組上的特徵值法:一個行列式給出指數,回代給出方向,疊加拼出通解。這裡 lambda = 3 與 lambda = -1 符號相反——這正是鞍點的標誌,最後一節會講清。

基本矩陣:把解捆成一束

對一個 n 維方程組,你湊齊 n 個獨立的解向量 x_1(t), ..., x_n(t),通解便是它們的疊加 x(t) = c_1 x_1(t) + ... + c_n x_n(t)。把這些捆成一個對象是值得的。把這 n 個解向量豎起來,作為一個矩陣的各列:Phi(t) = [x_1(t) | x_2(t) | ... | x_n(t)]。這就是基本矩陣,它是你在第一篇裡遇到的基礎解系在方程組層面的版本。有了它,通解便塌縮成單單一個矩陣乘向量的積,x(t) = Phi(t) c,其中 c 是那一列任意常數。

因為每一列都滿足方程組,整個矩陣也滿足方程組:dPhi/dt = A Phi,如今是一個矩陣微分方程。檢驗各列是否真正獨立的判據,理所當然地,又是一個行列式——det Phi(t),它在這裡所扮演的角色,恰恰就是朗斯基行列式對單個方程所扮演的。若 det Phi 在某一時刻不為零,它便在每一時刻都不為零,各列構成一組基。這正是你先前見過的那種阿貝爾式的「全有或全無」行為,被抬升到了向量上。一個非奇異的基本矩陣,就是你那張證書,證明這 n 條軌跡確實張成了整個解空間。

矩陣指數 e^{At}

現在,來談那個為整門學問加冕的念頭。標量方程 x' = a x 有乾淨的閉式 x(t) = e^{at} x_0。方程組 dx/dt = A x 會不會也有一個同樣乾淨的閉式 x(t) = e^{At} x_0,讓矩陣 A 坐在數 a 曾坐的位置上?唯一的障礙是含義:一個矩陣的指數究竟能是什麼?我們並不是真的把 e 升到矩陣次冪。我們改而借用指數那個從不提及根、也從不重複地把 e 相乘的定義——它的泰勒級數 e^z = 1 + z + z^2/2! + z^3/3! + ...——把一個矩陣餵進去。把矩陣指數定義為 e^{At} = I + At + (At)^2/2! + (At)^3/3! + ...,是完全說得通的:每一項都是矩陣,你把矩陣相加,而這個級數可證明對任何方陣 A 都收斂。

而它確實滿足你所企盼的一切。把這個級數對 t 逐項求導——在其收斂半徑內這是合法的,與尋常冪級數一模一樣——你便得到 d/dt[e^{At}] = A + A^2 t + A^3 t^2/2! + ... = A e^{At}。於是 x(t) = e^{At} x_0 滿足 dx/dt = A x,且在 t = 0 時等於 e^{0} x_0 = I x_0 = x_0。因此矩陣指數一舉給出了任意起點 x_0 的初值問題的精確解。它也正是那個被歸一化、使其在 t = 0 等於單位陣的特殊基本矩陣:e^{At} = Phi(t) Phi(0)^{-1}。僅僅一個對象,便把每一個初始條件向時間前方推送。

相平面:一眼讀出流的樣子

對一個 2x2 方程組,最美的回報是幾何上的。把時間軸撇開,直接在 (x_1, x_2) 平面裡畫出軌跡——這就是相平面——每一條曲線都是一個解所掃出的路徑,配上小箭頭標明流動的方向。因為 A x 不隨時間變(該方程組是自治的),這幅圖是一個固定的向量場,而原點——A x = 0 之處——是那唯一的平衡點。令人驚嘆的事實是:一個 2x2 矩陣的兩個特徵值,完全決定了這整幅畫像的形狀。它們的符號與它們是否為實數,把每一種線性流分門別類,歸入一張簡短的、有名有姓的圖樣清單——即相平面分類

憑感覺把這些情形走一遍。兩個同號的實特徵值給出一個結點:若兩者皆負,每條軌跡都向內流,原點是一個穩定的匯,所有路徑都排向中心;若兩者皆正,則是一個源,一切向外飛散。兩個異號的實特徵值給出一個鞍點——正是我們上面算過的那個 2x2 的情形,lambda = 3 與 lambda = -1:軌跡沿著負特徵值的特徵向量奔湧而入,轉向,再沿著正的那個射出,描出一條條經過一個不穩定交匯處的、形如雙曲線的路徑。複特徵值 lambda = alpha +/- i beta 則帶來旋轉,因為 cos 與 sin 藏在 e^{(alpha + i beta)t} 之內:實部 alpha 定半徑,虛部 beta 定旋轉。若 alpha 不為零,你得到一個螺線——軌跡繞著原點盤旋,同時收縮(alpha < 0,穩定螺線)或擴張(alpha > 0,不穩定螺線),這是一個阻尼或受驅振盪盤旋著衰落或上揚的通用畫像。若 alpha 恰為零,純虛特徵值,你得到一個中心:閉合的橢圓軌道永遠繞著原點轉,既不增長也不衰減——無阻尼振盪,能量完美守恆,正是無摩擦單擺或理想 LC 電路在相平面裡的面孔。自始至終,特徵值實部的符號,正是關於穩定性的判決:負實部把你拉回家,正實部把你推開。

  1. 由 det(A - lambda I) = 0 算出兩個特徵值——等價地,由 A = [a, b; c, d] 的跡 tau = a + d 與行列式 Delta = ad - bc 算出,因為 lambda 滿足 lambda^2 - tau lambda + Delta = 0。
  2. 實數且同號 -> 結點(皆負為匯,皆正為源)。實數且異號 -> 鞍點(恆不穩定)。
  3. 複數且實部非零 -> 螺線(實部 < 0 穩定,> 0 不穩定)。純虛 -> 中心(閉合軌道,臨界穩定)。
  4. 從實部讀出穩定性:兩個實部都為負,意味著每條軌跡都回到原點;只要有一個實部為正,它終將逃逸。

把誠實的邊界放在眼前。這份清晰的圖集,只對常係數線性方程組才是精確的;一個真實的非線性系統,有它自己的、也許狂野的幾何。回去的橋,是你日後會遇到的線性化:在一個非線性場的平衡點附近,你用它的偏導數矩陣——即雅可比矩陣,一個徑直來自多元微積分的念頭——去近似它,而那個局部矩陣的特徵值,通常能預言鄰近的畫像。是通常,而非總是:那些臨界情形(一個中心、一個重特徵值、一個零特徵值)是微妙的,在那裡,你丟棄的那些非線性項可以決定真正的行為。但在這些誠實的限度之內,你如今握有一項非凡的本領——從一個矩陣上讀出兩個特徵值,你便能勾出整個系統的命運,而無須解出哪怕一條軌跡。