固有ベクトルによる対角化#
となる。ここで、
Tip
となるため、
例#
import sympy as sp
A = sp.Matrix([
[1, 3],
[2, 2]
])
values = []
vectors = []
for e in A.eigenvects():
values.append(e[0])
vectors.append(e[2][0])
print(f"λ =", values)
# 固有ベクトルを列ベクトルとして作った行列
P = sp.Matrix(vectors).reshape(*A.shape)
print("P =")
P
λ = [-1, 4]
P =
# (λ1 x1, λ2 x2)
sp.Matrix([values[0] * vectors[0], values[1] * vectors[1]]).reshape(*A.shape).T
# P @ (λを対角要素にもつ行列)
P @ sp.diag(*values)
P.inv() @ A @ P
なぜ固有ベクトルで対角化できるのかについては、いくつかの定理が関わる。
対角化に関する定理#
定理
とすると、
が成り立つ。
逆に、
をみたし、
対角化可能の判定#
定理(相異なる固有値に属する固有ベクトルは1次独立)
定理(相異なる固有値に属する固有ベクトル ⇒ 対角化可能)
そのとき、それらに属する固有ベクトル
定理(相異なる固有値に属する固有ベクトル ⇒ 対角化可能)
すなわち、ある正則行列
となる。
固有値の重複度(重解)と固有空間の次元数#
定理
が成り立つ
は、三角行列なので
と、
この空間の次元は1である。
定理
が成り立つ
対角化の条件#
対角化可能であることと同値の条件がいくつかある(参考:川久保 2010)
定理
(1)
(2)
すなわち、
が成り立つ。
(3)
が成り立つ。
(4)
(1) (2) の 証明
仮定より
とできる。
したがって、仮に
のようになっており、重複度の総和は
また上の行列の等式の両辺に左からPを掛けると
仮定より
よって、
が成り立つ。一方、定理より一般に
が成り立つから、結局等号
が成り立つ。
(2) (3) の 証明
条件2の2番目の等式を1番目の等式に代入すれば
が得られる
(3) (4) の 証明
仮定より、
である。このとき、
が1次独立であることを示す。
いま 1 次関係式
とおくと、
である。
ベクトル
に矛盾する. よって
が,任意の
は1次独立である。
よって
(4) (1) の 証明
となる。
となり、
三角化#
また、
定理
証明の概略
の形に書くことができる。ここで
となる。
なお、
とおくと、
となる。固有ベクトル