対角化は固有基底で伸ばすだけにする
行列はふつう格子をゆがめ矢印を回すので、頭の中で描くのが難しいものです。でも固有ベクトル、つまり変換を受けても向きが変わらず長さだけ変わるあの特別な方向を新しい座標軸にすると、その座標では行列が急に単純になります。回転もゆがみも消え、二つの軸をそれぞれ固有値だけ伸ばす対角行列 D だけが残ります。これが対角化 A = P D P⁻¹ で、P は固有ベクトルを列に並べた行列です。一度こう分けておくと、べき乗 Aⁿ はほぼ無料になり、対称行列ではその軸がちょうど直角になります。この一つの事実が PageRank、SVD、PCA を一本に貫きます。
同じ変換 A を二つの視点でトグルしてみてください。標準の視点では格子がゆがみ、固有ベクトルでないふつうの矢印は長さだけでなく向きまで曲がります。頭で追うのは大変です。固有基底の視点に切り替えると、二つの固有ベクトルが新しい座標軸になります。すると A は第一軸を λ1 倍、第二軸を λ2 倍に伸ばすだけの対角変換 D = diag(λ1, λ2) として現れます。回転はゼロです。正しい基底を選べば、複雑に見えた行列がただ二度の伸ばしに収まる、これが対角化の出発点です。
A = P D P⁻¹ が一つのベクトルにどう作用するかを段階で踏んでみましょう。P は固有ベクトル v1, v2 を列に立てた行列です。段階0は出発ベクトル。段階1の P⁻¹ はそのベクトルを固有座標へ移し、「v1 方向にいくつ + v2 方向にいくつ」と読ませます。段階2の D はその固有座標で第一成分を λ1 倍、第二成分を λ2 倍に伸ばします。伸ばすだけなので最も単純な段階です。段階3の P はその結果を元の座標へ戻します。P⁻¹ で入り、D で伸ばし、P で出るこの三動作が、A 一回とちょうど同じです。
対角化の本当の得はべき乗です。Aⁿ = P Dⁿ P⁻¹ で、真ん中の Dⁿ は各固有値を n 乗しただけの対角行列です。行列を n 回掛ける手間が消えます。スライダーでべき k を上げてみてください。一つのベクトルが毎回それぞれの固有方向に λi 倍され、絶対値の大きい固有値の側がしだいに圧倒します。だから k が大きくなると、ベクトルは最大固有値の方向(支配的固有ベクトル)へどんどん揃います。これがべき乗反復法で、PageRank や繰り返す過程が時間とともに一方向へ落ち着く原理です。
行列が対称(b の位置と c の位置が等しい)だと、特別なことが起きます。非対角項を操るスライダーを動かしてみてください。A が対称から遠いあいだ、二つの固有ベクトル軸は斜めの角度に傾いています。A を対称にした瞬間、二つの固有ベクトルがちょうど90度、すなわち直角で交わります。これがスペクトル定理です。対称行列はつねに正規直交な固有ベクトルを持つので A = Q Λ Qᵀ に分かれ、Q は直交行列(回転)、Λ は固有値の対角行列です。P⁻¹ の代わりにそのまま Qᵀ を書けるわけです。この直交対角化が SVD と PCA の幾何学的な心臓です。
正直な但し書きを一つ。すべての行列が対角化されるわけではありません。トグルの片側は異なる二つの固有方向を持つ健全な行列で、固有ベクトルが平面を張るので対角化されます。もう片側はせん断(shear)行列 [[1,1],[0,1]] です。固有値は 1 が一つ重複しますが、固有ベクトルは横軸の一方向しか出ません。二本の矢印が同じ線に重なるのが見えるでしょう。このように独立な固有ベクトルが足りない行列を結損(defective)と呼び、新しい座標軸を置くだけの方向がないので対角化できません。対角化の条件は「n 個の独立な固有ベクトル」です。