矩陣指數與非齊次方程組

用對角化求矩陣指數(matrix exponential by diagonalization)

e^(At) 的級數定義雖誠實,卻不討計算器歡心,你得把無窮多個矩陣冪相加。對角化是那個技巧,只要矩陣性質良好,就讓計算近乎免費。其想法是:換到一個座標系,讓系統解耦成各自獨立的單變量問題,逐一輕易求解,再換回來。

以下是平實的步驟。求出 A 的特徵值 lambda_1, ..., lambda_n 與一整組特徵向量。把這些特徵向量疊成矩陣 P 的各列,把特徵值放上矩陣 D 的對角線。則 A = P D P^(-1),這正是可對角化的意思。關鍵在於冪會漂亮地坍縮:A^k = P D^k P^(-1),而 D^k 不過是把每個對角元各自取 k 次方。把這代入指數級數,P 與 P^(-1) 從每一項中提出,留下 e^(At) = P e^(Dt) P^(-1)。而 e^(Dt) 是平凡的:一個對角矩陣,對角線上放 e^(lambda_1 t), ..., e^(lambda_n t)。所以配方是:造出 P 與 D,把對角線逐個純量取指數,再用 P 與 P^(-1) 夾起來。

此法恰在 A 擁有一整組獨立特徵向量時奏效,特徵值兩兩相異時必然如此,重根時也常常(並非總是)如此。若某個特徵值的特徵向量不足,A 便無法對角化,這條乾淨的公式就此停擺;你得退回到廣義特徵向量與約當形。當特徵值為複數時,公式仍以複數元素成立,事後把共軛配對,便還原出實的正弦與餘弦。對角化是首選的主力方法,動用更花俏的工具之前先試它。

設 A = [1, 1; 0, 2]。特徵值為 1 與 2,特徵向量為 (1, 0) 與 (1, 1)。故 P = [1, 1; 0, 1],D = [1, 0; 0, 2],P^(-1) = [1, -1; 0, 1]。則 e^(At) = P [e^t, 0; 0, e^(2t)] P^(-1) = [e^t, e^(2t) - e^t; 0, e^(2t)]。驗證:在 t = 0 時這是 I,微分得 A e^(At)。全程不必手動加總任何無窮級數。

對角化換到特徵座標,那裡每個模態以純粹的 e^(lambda t) 成長,再把答案變換回來。

對角化需要一整組獨立特徵向量;對於虧損矩陣(重根所對應的特徵向量太少)無法對角化,P e^(Dt) P^(-1) 公式根本不適用。

又称
e^(At) = P e^(Dt) P^(-1)對角化法eigen-decomposition method