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

特徵值與特徵向量解出方程組

常係數線性方程組有一個出奇簡潔的食譜:猜每個分量都沿著一個固定方向以 e^(lambda t) 增長,於是整條微分方程便塌縮成代數問題 A v = lambda v。特徵值與特徵向量就是全部的答案。

從一條純量方程到方程組,再回到同一個老把戲

上一篇向你展示了如何把任何高階線性方程「壓平」成一階方程組,做法是把每一階導數命名為一個全新的未知量。那個 矩陣形式 x' = A x 的回報,在於它看起來恰好像你解過的最簡單的微分方程。回想最初一節裡的純量情形 y' = a y:它的解是 y = c * e^(at),一個單一的指數,其增長率就是係數 a。本篇大膽的盼望是:向量方程組 x' = A x——一次處理多個相互耦合的未知量——竟以同樣的方式求解,由矩陣 A 扮演增長率 a 的角色。

但耦合正是整個障礙。在 x' = A x 裡,每個未知量的變化率都依賴於*其他*未知量,所以你無法一次只對一條方程積分——拉動一根線,其餘的線都跟著動。整節背後的單一想法,就是去找出那些讓耦合*消失*的特殊方向:沿著這些方向,矩陣 A 表現得就像一個普通的數。沿著這樣的方向行進,向量方程組會暫時忘記自己是個方程組;它表現得像一條純量方程 y' = lambda y,而它的答案我們早已了然於胸。

把微積分化為代數的那個猜測

關鍵的一躍如下。猜一個具有特殊形狀的解 x(t) = e^(lambda t) v,其中 lambda 是一個未知的數,v 是一個未知的*固定*向量——一個從不轉動、只隨時間被純量 e^(lambda t) 拉長或縮短的單一方向。這呼應了你在特徵方程裡信賴的純量猜測 y = e^(rt),只是如今前面那個常數是一整個向量。把它代入,看著微分方程蒸發殆盡。

Guess:   x(t) = e^(lambda t) v        (v is a fixed, nonzero vector)

Left:    x'   = lambda e^(lambda t) v       (only the scalar e^(lambda t) gets differentiated)
Right:   A x  = A ( e^(lambda t) v ) = e^(lambda t) (A v)

Set equal and cancel the never-zero scalar e^(lambda t):

         A v = lambda v          <-- the eigenvalue problem

rearranged:  (A - lambda I) v = 0,   v != 0
指數試解把 x' = A x 變成純代數的條件 A v = lambda v。再沒有任何微積分殘留。

讀懂剛剛發生了什麼。求導只碰到純量 e^(lambda t),帶下一個因子 lambda;矩陣 A 只碰到固定向量 v。在約去那個指數之後——它從不為零,所以這個約去永遠合法——剩下的就只有 A v = lambda v。這正是特徵值問題:找出一個純量 lambda(一個特徵值)與一個非零向量 v(一個特徵向量),使得 A 只是縮放 v,而非傾斜它。每一組這樣的對 (lambda, v) 都白白送給你方程組的一個解 e^(lambda t) v。整個特徵值法就是這一次交換:用一個線性代數問題換掉一個微積分問題。

如何真正找出 lambda 與 v

把 A v = lambda v 改寫成 (A - lambda I) v = 0,其中 I 是單位矩陣。它問的是:對哪些 lambda,矩陣 (A - lambda I) 會把某個非零向量 v 壓垮成零向量?一個矩陣唯有在*奇異*時——也就是行列式為零時——才會把非零向量壓垮。所以 lambda 必須滿足 det(A - lambda I) = 0。對一個 2×2 的系統,這不過是一條關於 lambda 的二次式,也就是這個系統自己的特徵方程;它的根就是特徵值。一旦握有一個特徵值,把它代回 (A - lambda I) v = 0,再去解那條普通的代數方程組,求出方向 v。

  1. 由你的一階方程組 x' = A x 整理出矩陣 A(即上一篇所做的轉換)。
  2. 解特徵方程 det(A - lambda I) = 0,求出各個特徵值 lambda。
  3. 對每個 lambda,解 (A - lambda I) v = 0 以求得一個特徵向量 v(這是一個方向,而非唯一的向量——任意非零倍數皆可)。
  4. 把每一組對組裝成一個基本解 e^(lambda t) v。
  5. 疊加:通解為 c1 e^(lambda1 t) v1 + c2 e^(lambda2 t) v2 + ……,其中各常數由初始條件決定。

三種情形,因為特徵值有三種風味

上面的食譜在一切都「典型」時完美無瑕,但特徵方程是一條多項式,而多項式的根,恰好就是你在二階純量方程裡見過的那三種。這個對應並非巧合——它是同一套代數披上了矩陣的外衣。於是特徵值法分成三種情形,而本節餘下的三篇正好一篇對應一種。情形一:實數且相異的特徵值。 每個 lambda 都是不同的實數,每個特徵值給你一個如假包換的特徵向量,而基本解 e^(lambda1 t) v1、e^(lambda2 t) v2 自動就是獨立的。這是 實相異情形,三者之中最乾淨的——每條軌跡都由沿著固定直線的一對純指數所支配。

情形二:複數特徵值。 當特徵二次式的判別式為負,特徵值會成對出現為一對共軛 lambda = mu +/- i*omega,特徵向量也是如此。依歐拉公式,一個複指數 e^((mu + i omega) t) 就是一個實指數 e^(mu t) 裹著一個旋轉 cos(omega t) + i sin(omega t)。取一個複數解的實部與虛部,便交給你兩個會盤旋的*實*解:實部 mu 決定增長或衰減,虛部 omega 決定旋轉的速率。這是複數情形,也正是相圖之所以會打旋的原因——下一篇談旋轉的指南就棲身於此。

情形三:重複的特徵值。 一個重根 lambda 是麻煩製造者。有時它仍供得出兩個獨立特徵向量、行為良好;但常常它是*虧損的*——在代數上是個重根,卻只給得出一個特徵向量方向。此時光憑 e^(lambda t) v 無法張成一個二維解空間,你是貨真價實地缺了一個解。補救之道呼應了純量重根情形裡那個孤單的夥伴 x*e^(rt):你構造出形如 e^(lambda t) (t*v + w) 的第二個解,其中 w 是一個解 (A - lambda I) w = v 的廣義特徵向量。這是重特徵值情形,三者中最微妙的一種,也是本節最後一篇的主題。

為何這些基本解就已足夠——以及這套方法的界限何在

為何 n 個特徵解就足以捕捉*每一個*解?因為對一個 n×n 的系統,解空間恰好是 n 維的,而 n 個獨立解構成一組基——一組向量解的基本解組。當特徵向量 v1、……、vn 獨立時(這在特徵值相異時自動成立,在行為良好的情形裡也可安排得到),組合 c1 e^(lambda1 t) v1 + ... + cn e^(lambda n t) vn 便已觸及每一個解。接著由單一初始條件 x(0) 定出各常數,不過是解一條線性方程組:把 x(0) 寫成各特徵向量的組合。這就是從頭到尾的全部解。

退一步,欣賞你方才跨過的這座橋。一個關於「隨時間變化」的微分方程,竟被一套關於「方向與拉伸」的靜態代數——A v = lambda v——完整地回答了。特徵值決定每條軌跡的*命運*(增長、衰減、振盪),特徵向量決定它的*幾何*(它所遵循的直線與螺旋)。這正是線性代數與微分方程熔接成同一門學科的所在。餘下三篇不過是放大這三種情形——直線解、旋轉,以及廣義特徵向量——讓你到最後,能看著任何一個 2×2 矩陣,便憑肉眼勾勒出它所生成的流動。