対称行列の対角化

こんにちはコーヤです。

このページでは直交行列を使用して対称行列の対角化を行います。対角化の特殊な場合で、主軸変換に応用されます。

対称行列の対角化の概要

普通の行列の対角化は以下の4ステップで計算できます。

  1. 固有値と固有ベクトルを求める
  2. 対角化可能か判定する
  3. 変換行列Pを作る
  4. 逆行列P1を計算する

ステップ2ではn次の行列はn個の固有ベクトルないと対角化できないという判定を行いました。

それに対し対称行列Sは必ずn個の固有ベクトルを持ちます。つまり対称行列Sは必ず対角化できます。

さらにステップ3の変換行列Pを作る工程で、対称行列Sは普通の変換行列Pでも対角化可能だし、直交行列Uでも対角化可能です。

このページでは、対称行列Sを直交行列Uで対角化する計算方法を勉強します。(ページの最後で普通の変換行列Pで対角化した場合と比較します。)

対称行列・直交行列の性質

対角化に入る前に対称行列と直交行列の性質を勉強しておきます。これらの性質を知っているとスムーズに計算できると思います。

対称行列S

S=tS

を満たす行列のことです。tSは転置を表します。

直交行列U

tU=U1

を満たす行列のことです。U1Uの逆行列です。

直交行列を用いない対角化では変換行列Pを用いてP1AP=Dという形になりましたが、直交行列を用いた対角化ではtUSU=Dとなります。

正規化の計算方法

直交行列を作るときに正規化の計算が必要です。正規化とはノルムを1に揃えることです。

vのノルムは以下のように定義されています。

v=vv

ベクトルvを正規化したベクトルをuとすると

u=vv

となります。

対角化計算の具体例

では具体的な計算を見ていきます。対角化の4ステップに沿ってやっていきます。

今回は以下の対称行列を対角化します。

S=(3223)

Step1. 固有値と固有ベクトルを求める

行列Sの固有方程式は

det(SλE)=|3λ233λ|=(λ1)(λ5)

これより固有値、固有ベクトルは

λ1=1λ2=5

v1=k1(11)v2=k2(11)

です。

Step2. 対角化可能か判定する

対称行列は必ず対角化可能です。判定の必要はありません。

対角行列D

D=(λ100λ2)=(1005)

となります。

Step3. 直交行列Uを作る

直交行列Uの作り方は変換行列Pの作り方とだいたい同じですが、媒介変数の値をテキトーに決めてはいけません。固有ベクトルを正規化するように媒介変数の値を決めます。正規化しないとtU=U1を満たさなくなってしまうのが理由です。

まずはv1を正規化します。

v1のノルムv1

v1=2k1

です。v1を正規化したベクトルをu1とすると

u1=v1v1=12(11)

となります。

同様にv2も正規化します。

v2=2k2

なので

u2=v2v2=12(11)

となります。

したがって直交行列U

U=12(1111)

となります。

Step4. 転置行列tUを作る

Uの転置行列tUを用意します。

tU=12(1111)

です。

最終的に対角化の式tUSU=Dに代入して

12(1111)(3223)(1111)=(1005)

となり対角化完了です。

直交行列を使わずに対角化

固有ベクトルを正規化して直交行列Uを作りましたが、正規化せずに計算した場合を見てみましょう。

k1=k2=1として変換行列Pを作ったとすると

P=(1111)P1=12(1111)

となるので対角化の式P1AP=Dに代入して

12(1111)(3223)(1111)=(1005)

正規化した場合と全く同じ対角化の結果となりました。

このように対角化することが目的なら正規化の計算は必要ありません。

正規化する必要があるのは、主軸変換が目的の対角化を行うときです。主軸変換については次のページで勉強します。

まとめ

対称行列Sは直交行列Uで対角化可能です。

対角化の式は以下の式です。

tUSU=D

コメント欄