次の対称行列 A を直交行列によって対角化せよ。
A=(3226)
A=⎝⎛123246369⎠⎞ ただし、 A の固有値 λ が λ=0 (重解) 14 で、それぞれの
固有値に対する固有空間が
W(0)W(14)=⎩⎨⎧c1⎝⎛−210⎠⎞+c2⎝⎛−301⎠⎞∣∣c1,c2∈R⎭⎬⎫=⎩⎨⎧c⎝⎛123⎠⎞∣∣c∈R⎭⎬⎫ であることを用いてよい。
A=(3226)
まず固有値を求める
∣A−λE∣=(3−λ)(6−λ)−2⋅2=18−9λ+λ2−4=14−9λ+λ2=(λ−2)(λ−7) よってλ=2,7
続いて、固有ベクトルを求める。
λ=2の場合、
(A−λE)x=0⟺(3−λ226−λ)(x1x2)=(00)⟺{x1+2x2=02x1+4x2=0 よってx1=−2x2より、c∈Rを用いて
(x1x2)=c(−21) と表すことができる。固有空間は
V(2)={c(−21)∣∣c∈R} となる。
λ=7の場合、
(3−λ226−λ)(x1x2)=(00)⟺{−4x1+2x2=02x1−x2=0 よって2x1=x2より、c∈Rを用いて
(x1x2)=c(12) と表すことができる。固有空間は
V(7)={c(12)∣∣c∈R} となる。
固有値λ=2,7それぞれに属する固有ベクトルx1,x2を
x1=(−21),x2=(12) とおく。x1,x2にシュミットの直交化を行いp1,p2とすると、
p1=∥x1∥x1=51(−21)=(5−251) であり
c=⟨x2,p1⟩=1⋅5−2+2⋅51=0 より
p2=∥x2−cp1∥x2−cp1=∥x2∥x2=51(12)=(5152) P=(p1,p2)とおいた行列
P=(5−2515152) によりAは対角化できる
P−1AP=(5−2515152)(3226)(5−2515152)=(5−45752514)(5−2515152)=(5105−14+145−4+4535)=(2007)
(これがいいのかはわからんが、対角化はできる)
x1,x2は1次独立なので個別にシュミットの直交化をしてp1,p2とおくと
p1p2=∥x1∥x1=51(−21)=(5−251)=∥x2∥x2=51(12)=(5152) P=(p1,p2)とおいた行列
P=(5−2515152) によりAは対角化できる
P−1AP=(2007) import sympy as sp
x1 = sp.Matrix([-2,1])
x2 = sp.Matrix([1,2])
A = sp.Matrix([
[3, 2],
[2, 6],
])
p1 = x1 / x1.norm()
c = x2.T @ p1
v2 = (x2 - c[0]*p1)
p2 = v2 / v2.norm()
P = sp.Matrix([p1, p2]).reshape(2, 2).T
P
P = sp.Matrix(sp.GramSchmidt([x1, x2])).reshape(2,2).T
P
A=⎝⎛123246369⎠⎞ ただし、 A の固有値 λ が λ=0 (重解) 14 で、それぞれの
固有値に対する固有空間が
W(0)W(14)=⎩⎨⎧c1⎝⎛−210⎠⎞+c2⎝⎛−301⎠⎞∣∣c1,c2∈R⎭⎬⎫=⎩⎨⎧c⎝⎛123⎠⎞∣∣c∈R⎭⎬⎫ であることを用いてよい。
固有ベクトルとして
x1=⎝⎛−210⎠⎞,x2=⎝⎛−301⎠⎞,x3=⎝⎛123⎠⎞ を用いる。
これらを直交化したベクトルをp1,p2,p3とする。シュミットの直交化で求めていく。
(1) p1を求める
∥x1∥=∣2∣2+∣1∣2=5なので、
p1=∥x1∥x1=51⎝⎛−210⎠⎞=⎝⎛5−2510⎠⎞ import sympy as sp
x1 = sp.Matrix([-2,1,0])
x2 = sp.Matrix([-3,0,1])
x3 = sp.Matrix([1,2,3])
p1 = x1 / x1.norm()
p1
(2) p2を求める
c=⟨x2,p1⟩=−3⋅5−2=56 x2−cp1=⎝⎛−301⎠⎞−56⎝⎛5−2510⎠⎞=⎝⎛−301⎠⎞−⎝⎛5−12560⎠⎞=⎝⎛5−15−5−12−561⎠⎞=⎝⎛−53−561⎠⎞ ∥x2−cp1∥=∣∣−53∣∣2+∣∣−56∣∣2+12=259+2536+2525=2570=570 p2=∥x2−cp1∥x2−cp1=705⎝⎛−53−561⎠⎞=⎝⎛−703−706705⎠⎞ c = (x2.T @ p1)[0]
p2 = (x2 - c * p1) / (x2 - c * p1).norm()
p2
(3) p3を求める
c1c2∥x3∥=⟨x3,p1⟩=1⋅5−2+2⋅51+3⋅0=0=⟨x3,p2⟩=1⋅70−3+2⋅70−6+3⋅705=70−3−12+15=0=∣1∣2+∣2∣2+∣3∣2=14 なので
p3=∥x3−(c1p1+c2p2)∥x3−(c1p1+c2p2)=∥x3∥x3=141⎝⎛123⎠⎞ P=(p1,p2,p3)とすると、このP
P=⎝⎛−52510−703−706705141142143⎠⎞ によりAは対角化できる
P−1AP=⎣⎡0000000014⎦⎤ P = sp.Matrix([p1, p2, p3]).reshape(3, 3).T
P
A = sp.Matrix([
[1,2,3],
[2,4,6],
[3,6,9]
])
P.inv() @ A @ P
P = sp.Matrix(sp.GramSchmidt([x1,x2,x3], orthonormal=True)).reshape(3,3).T
P
相異なる固有値に属する固有ベクトルたちは1次独立であり、別々に直交化できるため、ノルム
∥x1∥∥x2∥∥x3∥=∣2∣2+∣1∣2=5=∣3∣2+∣1∣2=10=∣1∣2+∣2∣2+∣3∣2=14 を用いて
p1p2p3=∥x1∥x1=51⎝⎛−210⎠⎞=⎝⎛5−2510⎠⎞=∥x2∥x2=101⎝⎛−301⎠⎞=∥x3∥x3=141⎝⎛123⎠⎞ とおく。これらを列ベクトルにもつ行列をP=(p1,p2,p3)とおく。
P=⎝⎛−52510−1430101141142143⎠⎞ AはPで対角化可能である。
import sympy as sp
a1 = sp.Matrix([-2,1,0])
a2 = sp.Matrix([-3,0,1])
a3 = sp.Matrix([1,2,3])
p1 = a1 / a1.norm()
p2 = a2 / a2.norm()
p3 = a3 / a3.norm()
P = sp.Matrix([p1, p2, p3]).reshape(3, 3).T
P
A = sp.Matrix([
[1,2,3],
[2,4,6],
[3,6,9]
])
P.inv() @ A @ P
import sympy as sp
a1 = sp.Matrix([-2,1,0])
a2 = sp.Matrix([-3,0,1])
a3 = sp.Matrix([1,2,3])
P = sp.Matrix(sp.GramSchmidt([a1,a2,a3])).reshape(3,3).T
P
直交行列の固有値は絶対値 1 の複素数であることを示せ。
Aをn次の直交行列、xをゼロでないn次のベクトルとする。
Ax=λx のノルムを取ると
∥Ax∥∥Ax∥∥x∥=∥λx∥=∣λ∣∥x∥(ノルムの定数倍についての定理∥cx∥=∣c∣∥x∥より)=∣λ∣∥x∥(直交変換は長さを保つ、すなわち∥Ax∥=∥x∥のため) よって∣λ∣=1となる。
固有値は一般には複素数となるため、直交行列の固有値は絶対値1の複素数である