特徵值轉為複數的那一刻
在上一篇指南裡,每個特徵值都是實數,而每個實特徵值都交給你一條直線解:在相平面上的一個方向,沿著它的運動是純粹的增長或純粹的衰減,也就是 e^(lambda t) 乘上一個固定的特徵向量方向。但一個 2x2 系統的特徵方程是個二次式,而二次式不見得有實根。判別式可能變為負,於是特徵值法便交出一個形如 lambda = a + bi 的複數特徵值。
對一個實矩陣 A,這件事絕不會單獨發生。一個實係數多項式的複根總是成對而來,互為共軛,所以若 a + bi 是特徵值,那麼 a - bi 自動就是另一個。它們的特徵向量也互為共軛:對 lambda = a + bi 解 (A - lambda I) v = 0,你會得到一個帶複數分量的向量 v;對應 a - bi 的向量,正是它逐分量的共軛。這裡根本沒有任何實的特徵向量,而這正是重點所在——並沒有一個讓系統單純滑行的實方向,因為這個系統正在旋轉。
歐拉公式就是指數裡藏著的那個旋轉
一切都繫於一個你早已見過的恆等式:歐拉公式,e^(i*theta) = cos(theta) + i*sin(theta)。慢慢讀它。左邊是一個指數——正是那台在實特徵值情形下給出直線解的增長機器。右邊則是純粹的旋轉,一個點繞著單位圓行走。所以一個純虛的指數既不放大也不縮小任何東西;它只是旋轉。這就是你即將看到的每一道螺旋、每一個迴圈的種子。
現在把複數特徵值拆成它的各部分。因子 e^((a+bi)t) = e^(at) * e^(i*bt),而依歐拉公式,第二塊就是 cos(bt) + i*sin(bt)。特徵值的實部 a 坐落在 e^(at) 裡,掌管大小——軌跡究竟是向外膨脹還是向內收縮。它的虛部 b 坐落在 cos(bt) 與 sin(bt) 裡,掌管轉動——系統繞行的快慢。一個數設定呼吸,另一個數設定旋轉,兩者同時作用而互不干擾。
這正是你早已在單一個二階方程裡見過之事在系統層級上的回響。在那裡,特徵方程的複數共軛根 r = a +/- bi 給出解 e^(at) cos(bt) 與 e^(at) sin(bt)——一個帶有振幅與相位、會衰減或增長的振盪。同樣的 a 與 b,同樣的「包絡乘以振盪」的形狀。一個由兩個一階方程組成的系統,不過就是把那同一個故事,同時在兩個座標裡講一遍,於是在單一個 y(t) 中看不見的旋轉,在 (x, y) 平面上化為了一個真實的轉動。
從一個複數解到兩個實數解
這裡有個讓整個複數特徵值情形變得實用的把戲,而它立基於一個雖小卻有力的事實:當矩陣是實的時,任何一個複數解的實部與虛部,「各自」單獨都是一個實數解。因此你並不需要共軛對中的兩個成員。只取其中一個——比方說由 lambda = a + bi 建出的那個解——把它展開,再收割它的實部與虛部,當作兩個彼此線性獨立的實數解。
- 只對「一個」特徵值 lambda = a + bi 解 (A - lambda I) v = 0,得到單一個複數特徵向量 v。完全略過那個共軛特徵值——它不會給你任何新東西。
- 組出那一個複數解 z(t) = e^((a+bi)t) v,並用歐拉公式把那個純量指數改寫成 e^(at)(cos(bt) + i*sin(bt))。
- 把全部展開,並把 z(t) 分離成 z(t) = x_re(t) + i * x_im(t),將所有實項收進 x_re、所有帶 i 的項收進 x_im。
- 那兩個實向量函數 x_re(t) 與 x_im(t) 就是你的實基本解對。實的通解是 x(t) = C1 * x_re(t) + C2 * x_im(t),其中 C1 與 C2 由初始條件定出。
軌跡實際長什麼樣子
現在在相平面裡想像它。因為每個解都是 e^(at) 乘上一個轉動的向量,幾何形狀可以直接從 a 與 b 這兩個數讀出。因子 e^(at) 設定半徑,振盪設定角度,於是這條軌跡便是某種風味的螺旋或圓。恰好有三幅圖像,而實部 a 的正負號決定你會得到哪一幅。
real part a picture in the (x,y) plane stability ----------------- ------------------------- --------------------- a < 0 (negative) spiral winding INWARD asymptotically stable a = 0 (zero) closed loops (ellipses) a center: neutrally stable a > 0 (positive) spiral winding OUTWARD unstable the imaginary part b only sets HOW FAST it turns (angular speed) and which way it winds; it never changes inward vs. outward.
當 a 為負時,解會向原點向內螺旋,你便有一個穩定的螺旋點——想像一扇帶摩擦的彈簧門,一邊繞圈一邊安定下來歸於靜止。當 a 為正時,同一道螺旋反向運行,向外甩出,原點便是一個不穩定的螺旋。臨界的 a = 0 最乾淨也最奇特:指數因子是 e^(0) = 1,半徑永不改變,軌跡是永遠繞行的閉合迴圈。那個平衡點是一個中心——無增無減地永恆環繞,正是無阻尼振盪在相平面上的面貌。
誠實的邊界:往哪轉,以及為何中心如此脆弱
兩條誠實的提醒,能讓你不至於過度信任這幅圖。第一,特徵值告訴你運動會旋轉、以及轉得多快,但「不」告訴你往哪個方向轉。旋轉的方向——順時針或逆時針——取決於 A 的實際分量,而非單憑特徵值。要確定它,可靠的辦法是插下一支箭:選一個點,在那裡算出速度向量 A x,看看流往哪邊指。特徵值給你形狀;一支取樣的箭給你朝向。
第二,也更重要的是,中心(a = 0)是一道只在理想化線性系統中才能存活的刀鋒。它的閉合迴圈無比脆弱:只要把實部 a 稍微推正或推負一點點——加上一絲最微弱的摩擦,或加上任何真實非線性模型都帶有的那些微小修正——迴圈立刻就鬆解成向內或向外的螺旋。這正是線性化(哈特曼-格羅布曼定理)拒絕背書的那條臨界線。該定理只在雙曲平衡點附近保證線性圖像成立,亦即其特徵值的實部「不」為零;一個純粹的中心 a = 0,落在那道保證之外,它在完整非線性系統中的真實行為,必須用別的方法另行查驗。
有了本篇指南,你便補上了實相異特徵值所留下的缺口。這兩種情形合起來,涵蓋了特徵值相異的所有情況——無論是實的(直線)還是複的(螺旋與迴圈)。剩下的是那塊尷尬的殘餘:當判別式恰好為零、兩個特徵值塌縮成一個時。單一個特徵值未必能供應足夠多的獨立特徵向量去填滿整個平面,而修補那個破洞,正是本層最後一篇指南中廣義特徵向量的工作。