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

對角化:矩陣最簡單的樣子

如果一個矩陣有足夠多的獨立特徵向量,你就能切換到一個由它們搭成的座標系——特徵基——在那裡矩陣變成一個簡單的對角縮放。這就是對角化,A = P*D*P^(-1),它把計算 A^k 這件苦差事變成了不值一提的算術。

選矩陣喜歡的座標軸

在標準座標下,矩陣看起來可能盤根錯節。但假設我們用它的 特徵向量 當作新的座標軸——一個 特徵基。沿著每一根軸,矩陣無非就是按那根軸的 特徵值 縮放。在那套座標裡,矩陣是對角的:除了對角線上的縮放因子,處處都是零。

A = P * D * P^(-1)

P  = eigenvectors as columns
D  = eigenvalues on the diagonal, e.g. [[2,0],[0,3]]
P^(-1) translates standard coords -> eigen coords
對角化的配方:換進去,縮放,再換回來。

為什麼這讓冪次變得輕而易舉

直接計算 A^k 意味著把雜亂的矩陣一遍又一遍地相乘。有了 對角化,相鄰兩次之間內部的 P^(-1) 與 P 相消,只剩下 D^k——而把一個對角矩陣升到某次冪,不過是把每個對角元素升到那次冪。就這麼簡單。

A^k = P * D^k * P^(-1)

D = [[2,0],[0,3]]
D^10 = [[1024,0],[0,59049]]   (just 2^10 and 3^10)
中間的 P 相消,所以只有對角元素被升到冪次。

一句老實話:並非每個矩陣都能對角化

整個技巧需要 P 可逆,這就要求你有足夠多獨立的特徵向量來填滿基——對 n 階矩陣需要 n 個。有些矩陣就是湊不夠這麼多,它們在實數範圍內無法對角化。

  1. 取錯切 A = [[1,1],[0,1]],解 det(A - lambda*I) = (1-lambda)^2 = 0。
  2. 唯一的特徵值是 lambda = 1,重複了兩次——但它只給出一個方向的特徵向量,(1,0)。
  3. 一個獨立的特徵向量填不滿二維的基,所以 P 不可逆,這個錯切無法對角化。