行列のn乗の計算方法

こんにちはコーヤです。

このページでは行列のn乗を計算する方法を、対角化できる場合、ジョルダン標準形になる場合、ケーリー・ハミルトンの定理を使う場合の3パターン勉強します。

n乗の計算の流れ

行列Dを以下のような対角行列として

D=(a000b000c)

行列Dn乗は

Dn=(an000bn000cn)

となります。このように対角行列であればn乗の計算は瞬殺できます。

対角行列のこの特性を使って、対角行列ではない行列An乗を計算していきます。

行列Aを対角化すると以下の式を得ました。(対角化できずにジョルダン標準形になった場合も計算の流れは同じなので、今は区別しないで進めます。)

P1AP=D

この式を両辺n乗すると

(1)(P1AP)n=Dn

となります。右辺のDは対角行列なのでn乗は簡単です。左辺の(P1AP)nを展開して

(P1AP)n=(P1AP)(P1AP)(P1AP)(P1AP)=P1APP1APP1APP1AP=P1AAAAP=P1AnP

となります。隣り合ったPP1=Eとなって式から消えていくという流れです。

この結果を式(1)に代入して

P1AnP=Dn

です。左辺のP1Pを右辺に移項して

An=PDnP1

これでn乗の式が求まりました。

n乗の計算方法3パターン

それでは具体的な計算を見ていきます。

対角化できる場合、ジョルダン標準形になる場合、ケーリー・ハミルトンの定理を使う場合の3パターンです。

このページでは対角化の計算が終わった状態からスタートします。対角化までの計算は全パターン計算のページで行っていますのでご覧ください。

Pattern1. 対角化できる場合

A=(120121001)

行列Aは以下の行列を用いてP1AP=Dを満たします。

P=(121110001)P1=(121111001)D=(100000001)

対角行列Dn乗は

Dn=((1)n00000001)

です。

これをn乗の式An=PDnP1に代入して

An=(121110001)((1)n00000001)(121111001)=((1)n+12(1)n+1(1)n+1(1)n2(1)n(1)n+1001)

これでAnが求まりました。

試験本番では試しにn=1を代入して検算してみるのがオススメです。

Pattern2.ジョルダン標準形になる場合

A=(211132011)

行列Aは以下の行列を用いてP1AP=Jを満たします。

P=(101110100)P1=(001011101)J=(210021002)

対角行列Dn乗は簡単でしたが、ジョルダン標準形Jn乗は一工夫必要です。

まずはジョルダン標準形から対角行列と対角行列ではない部分に分解します。分解した行列のうち対角行列をDとし、対角行列ではない部分をNとします。

D=(200020002)N=(010001000)

この2つの行列を用いて

J=D+N

と分解できます。

したがってJn乗は以下になります。

(2)Jn=(D+N)n

DN=NDが成り立つので、二項定理を使って展開します。

二項定理は以下の公式です。

(a+b)n=k=0nnCkankbk=nC0anb0+nC1an1b1+nC2an2b2++nCna0bn

行列A,BにおいてAB=BAが成り立っている場合、二項定理を使うことができます。

(3)(D+N)n=nC0DnN0+nC1Dn1N1+nC2Dn2N2+nC3Dn3N3++nCnD0Nn

前述の通りDn乗の計算は簡単です。Nn乗は手計算で求めてみます。

N0=E=(100010001)N1=(010001000)N2=(001000000)N3=(000000000)

N3=Oとなりました。なのでNは3乗以降は全て零行列になります。この結果を式(3)に代入して

(4)(D+N)n=nC0Dn+nC1Dn1N+nC2Dn2N2

二項定理で展開した式がすっきりしました。

正の整数kを用いて行列Xk乗したとき

Xk=O

が成り立つような行列X冪零べきれい行列と呼びます。

行列Nは冪零行列です。

ここまで来たら、各項を地道に計算していきます。

nC0=1nC1=nnC2=12n(n1)

Dn=((2)n000(2)n000(2)n)=(2)n2(400040004)

Dn1N=((2)n1000(2)n1000(2)n1)(010001000)=(0(2)n1000(2)n1000)=(2)n2(020002000)

Dn2N2=((2)n2000(2)n2000(2)n2)(001000000)=(00(2)n2000000)=(2)n2(001000000)

これらを式(4)に代入して

(D+N)n=(2)n2(42n12n(n1)042n004)

きれいになるように調整してあげて

(D+N)n=(2)n3(84nn2+n084n008)

これを式(2)に代入して

Jn=(2)n3(84nn2+n084n008)

これをn乗の式An=PJnP1に代入して

An=(2)n3(101110100)(84nn2+n084n008)(001011101)=(2)n3(n2+n84nn23nn23n4n8n27nn2n4nn2+3n8)

これでAnが求まりました。

Pattern3. ケーリー・ハミルトンの定理を使う場合

ケーリー・ハミルトンの定理は行列の次数を下げるときに便利な定理です。

ケーリー・ハミルトンの定理

行列Aの固有方程式det(AλE)ϕ(λ)としたとき以下の式が成り立ちます。

ϕ(A)=O

これがケーリー・ハミルトンの定理です。

2次の行列Aを例に定理の使い方を見ていきます。

A=(abcd)

とすると固有方程式は

det(AλE)=|aλbcdλ|=(aλ)(dλ)bc

よって

ϕ(λ)=(aλ)(dλ)bc

として

ϕ(A)=(aA)(dA)bc=A2(a+d)A+(adbc)E

となるので、ケーリー・ハミルトンの定理より

A2(a+d)A+(adbc)E=O

となります。この結果を使えば

A2=(a+d)A(adbc)E

このようにAの2次式から1次式へ次数を下げることができます。

さて、定理を勉強したところで計算に戻ります。

A=(101121110)

行列Aは以下の行列を用いてP1AP=Jを満たします。

P=(111310210)P1=(011023112)J=(100001000)

この行列Aの固有方程式は

ϕ(λ)=(λ+1)λ2

なのでケーリー・ハミルトンの定理より

A3+A2=O

となります。右辺に移項して

A3=A2

となるので

A3=A2A4=A3A=A2A=A3=A2A5=A4A=A2A=A3=A2A6=A5A=A2A=A3=A2

ここらへんまで計算すればAn=(1)nA2だと推測できるので、数学的帰納法で証明します。

まずA2から計算します。

A2=(101121110)(101121110)=(011033022)

n=kのとき以下の式が成り立つと仮定します。

Ak=(1)k(011033022)

n=k+1のとき

Ak+1=AkA=(1)k(011033022)(101121110)=(1)k(011033022)=(1)k+1(011033022)

となります。これで証明終了です。

以上より

An={(101121110)n=1(1)n(011033022)n2

これでAnが求まりました。

まとめ

行列のn乗は以下の式から求めます。

An=PDnP1

ジョルダン標準形は対角行列と冪零行列に分解して計算するか、ケーリー・ハミルトンの定理と数学的帰納法を組み合わせて計算します。

コメント欄