矩陣指數與非齊次方程組

矩陣指數(matrix exponential)

/ e to the A t /

想像最簡單的成長律:y' = a y,一個數以正比於自身大小的速率變化。它的解是 y(t) = e^(at) y(0),把常數 a 餵進指數函數,就能從初值推知整個未來。現在不是一個量,而是好幾個量同時互相牽引:三個相連房間的溫度、相互作用物種的數量、電路中的電流。規則變成 x' = A x,其中 x 是一列數字,A 是一個由速率常數構成的方陣。矩陣指數正是回答那個自然的問題:我們是否仍能直接寫下 x(t) = e^(At) x(0)?答案出人意料地是肯定的。

這個定義完全照搬純量指數。對一個數,e^x = 1 + x + x^2/2! + x^3/3! + ...。對一個方陣 A,你把數換成矩陣,把 1 換成單位矩陣 I:e^(At) = I + At + (At)^2/2! + (At)^3/3! + ...。每一項都是矩陣(矩陣的冪仍是矩陣),而這個無窮和對任何方陣與任何 t 都收斂。結果 e^(At) 本身是方陣,與 A 同樣大小。有兩個事實使它成為正確的對象:它對 t 的導數是 A e^(At)(把級數逐項微分),而且在 t = 0 時等於 I。因此 x(t) = e^(At) x(0) 滿足 x' = A x 並從 x(0) 出發,正是初值問題的解。

你絕不能把 e^(At) 逐元素計算,彷彿矩陣的每個位置各自取指數,那是錯的,因為矩陣乘法會把行與列混合起來。本領域誠實的實用內容是:級數是乾淨的定義,卻是糟糕的計算器;現實中你透過特徵值與對角化、特徵向量不足時透過約當形(Jordan form)、透過凱萊-哈密頓定理(Cayley-Hamilton theorem)與普策爾算法(Putzer's algorithm),或透過拉普拉斯變換來求 e^(At)。級數是意義所在,那些則是方法所在。

設 A = [0, 1; -1, 0],這是系統 x' = y、y' = -x(簡諧振子)的矩陣。展開級數,At 的偶次冪在 I 與 -I 之間循環,奇次冪在旋轉片段之間循環,這兩個子級數恰好是餘弦與正弦的泰勒級數。其和為 e^(At) = [cos t, sin t; -sin t, cos t],即旋轉角度 t 的旋轉矩陣。所以這個 A 的矩陣指數實實在在地在轉動平面,這正是它的解繞圈的原因。

e^(At) 不一定長得像指數,對旋轉型的 A,它會化成正弦與餘弦,因為複數特徵值把三角函數藏在指數之內。

切勿逐元素對矩陣取指數,e^(At) 由冪級數定義,而非對每個位置套用 e^x,兩者幾乎從不相等。

又稱
e^(At)exp(At)矩陣指數函數