8×8行列ジョルダン標準形の問題
A=
[0 -1 1 0 -1 1 -1 1]
[1 -3 3 0 -4 0 -2 0]
[-2 1 -3 0 1 -2 1 -2]
[-1 4 -4 -1 7 0 4 0]
[-3 1 -3 0 0 -3 1 -3]
[-2 6 -5 0 9 -2 6 -1]
[3 1 1 0 3 4 0 4]
[3 -6 6 0 -9 2 -6 1]
のジョルダンの標準形を求め
ジョルダンの標準形に相似変換する行列をを求めよ
次の解答でいいですか?
書き方も含めて、間違いを指摘して下さい。
【解答】
固有多項式
det(A-λE)=
=λ^8+8λ^7+28λ^6+56λ^5+70λ^4+56λ^3+28λ^2+8λ+1
=(λ+1)^8
(二項定理の係数になってたので因数分解できました)
固有値:λ=-1(8重根)
固有値-1に対して、B=A+Eと書く。
最初にrank(B)を求める。
B=
[1 -1 1 0 -1 1 -1 1]
[1 -2 3 0 -4 0 -2 0]
[-2 1 -2 0 1 -2 1 -2]
[-1 4 -4 0 7 0 4 0]
[-3 1 -3 0 1 -3 1 -3]
[-2 6 -5 0 9 -1 6 -1]
[3 1 1 0 3 4 1 4]
[3 -6 6 0 -9 2 -6 2]
⇩(ガウスの消去法)
[1 0 0 0 1 0 0 0]
[0 1 0 0 1 0 1 0]
[0 0 1 0 -1 0 0 0]
[0 0 0 0 0 1 0 1]
[0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0]
よって、rank(B)=4
ジョルダン細胞数の数は固有空間の次元に等しいので、
dim(Ker(B))=8-rank(B)=4個
次にジョルダン細胞の次数を求める。
(m+1)次以上のジョルダン細胞の数は、
rank(A-λE)^m-rank(A-λE)^(m+1)
で与えられるから、
rank(B)-rank(B^2)の値が2以上のジョルダン細胞の数を与えるから、B^2を計算。
B^2=
[-1 0 -1 0 0 -1 0 -1]
[-1 0 -1 0 0 -1 0 -1]
[1 0 1 0 0 1 0 1]
[2 0 2 0 0 2 0 2]
[1 0 1 0 0 1 0 1]
[4 0 4 0 0 4 0 4]
[0 0 0 0 0 0 0 0]
[-4 0 -4 0 0 -4 0 -4]
⇩
[1 0 1 0 0 1 0 1]
[0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0]
よって、rank(B^2)=1
rank(B)-rank(B^2)=4-1=3
2次以上のジョルダン細胞数は3個。
8次の中にジョルダン細胞数が合計で4個、2次以上が3個なので、
ジョルダン細胞の直和は、1次+2次+2次+3次という形になる。
Aの相似形を「~」で書くと、ジョルダン標準形は、次数の低い方からの直和で(➕は、+の丸囲みです)
A~J(-1,1)➕J(-1,2)➕J(-1,2)➕J(-1,3)
J=
-1 0 0 0 0 0 0 0
0 -1 1 0 0 0 0 0
0 0 -1 0 0 0 0 0
0 0 0 -1 1 0 0 0
0 0 0 0 -1 0 0 0
0 0 0 0 0 -1 1 0
0 0 0 0 0 0 -1 1
0 0 0 0 0 0 0 -1
次に固有ベクトルを求める。
求める固有ベクトルを
p=[p1 p2 p3 p4 p5 p6 p7 p8]^t
(^tは、転置行列)と書く。
p=(p1,p2,p3,p4,p5,p6,p7,p8)
(列ベクトルの記述です)
として、固有ベクトルを求める
Bp=0
[1 0 0 0 1 0 0 0]p=0
[0 1 0 0 1 0 1 0]p=0
[0 0 1 0 -1 0 0 0]p=0
[0 0 0 0 0 1 0 1]p=0
p1+p5=0
p2+p5+p7=0
p3-p5=0
p6+p8=0
p4=任意
t,s,u,vを媒介変数として
p=t(-1,0,1,0,1,0,-1,0)+s(0,-1,0,0,0,0,1,0)+u(0,0,0,1,0,0,0,0)+v(0,0,0,0,0,1,0,-1)
独立した固有ベクトルは、
(-1,0,1,0,1,0,-1,0)
(0,-1,0,0,0,0,1,0)
(0,0,0,1,0,0,0,0)
(0,0,0,0,0,1,0,-1)
の4つだが、
1次ジョルダン細胞に対するものを一番簡単な(0,0,0,1,0,0,0,0)にする。
それをx=[0 0 0 1 0 0 0 0]^t (転置)と書く。
By≠0、Bz≠0、Bu≠0、B^2u≠0の条件で
y=[1 0 0 0 0 0 0 0]^t
z=[0 1 0 0 0 0 0 0]^t
u=[0 0 1 0 0 0 0 0]^t
を設定すると、変換行列Pはジョル細胞の低い方をからの直和に合わせ
P=[x By y Bz z B^2•u Bu u]
P=
0 1 1 -1 0 -1 1 0
0 1 0 -2 1 -1 3 0
0 -2 0 1 0 1 -2 1
1 -1 0 4 0 2 4 0
0 -3 0 1 0 1 -3 0
0 -2 0 6 0 4 -5 0
0 3 0 1 0 0 1 0
0 3 0 -6 0 -4 6 0
P^(-1)=
0 0 0 1 34 28 16 37
0 0 0 0 4 4 2 5
1 0 0 0 1 2 0 2
0 0 0 0 -8 -9 -3 -11
0 1 0 0 1 -1 1 -1
0 0 0 0 9 12 3 14
0 0 0 0 -4 -3 -2 -4
0 0 1 0 -1 -1 0 -1
P^(-1)AP=J
になる。
お礼
ご指摘の通り、Pが間違っていました。 また、P^-1の計算手順に不手際があり、 固有ベクトルをどちらに置いても、行列が対角化できることが分かりました。 更に、ナニをトチ狂ったのか、対角化行列の -2 0 0 5 と 5 0 0 -2 を区別していました。要は同じ固有値からなる対角行列なので どちらがどちらでもいいことですね。 ありがとうございました。
補足
当然計算いたしました。 というより、自分の中でそうやって総当りで調べるしかないので、なかなかn次正方行列(n>2)を計算することができず困っています。固有値はわかっても、Pが算出できないものも多いのです。 計算するまで標準化するための行列が分からない場合、 二次正方行列ならともかく、三次以上の正方行列では 正解を探して何度も計算するはめになると思っています。 (固有値tと、対角化行列であることが判明しているので、ある程度は手間が省けますが)。 また、n次正方行列に対して手も足も出ません。 もしかして、総当りで調べる以外に方法はないのでしょうか?