ジョルダン標準形とは?意義と求め方を具体的に解説

ジョルダン標準形は、対角化できない行列を擬似的に対角化(準対角化)する手法です。これによって対角化不可能な行列でも、べき乗の計算がやりやすくなります。当ページでは、このジョルダン標準形の意義や求め方を具体的に解説していきます。

目次

1. ジョルダン標準形とは

行列の対角化」では、独立した固有ベクトルが \(n\) 本に満たない \(n\) 次正方行列(剪断せんだん行列など)では対角化が不可能であることをお伝えしました。

例えば以下のような行列は、独立した固有ベクトルが \(n-1\) 本しかないため、対角化不可能です。

対角化不可能な行列

\[\begin{eqnarray}
\left[\begin{array}{cc} 1 & 1 \\ 0 & 1 \end{array} \right]
,\hspace{3mm}
\left[\begin{array}{cc}
1 & 0 & 0 \\
0 & 1 & 1\\
0 & 0 & 1
\end{array} \right]
\end{eqnarray}\]

ただし、このように対角化不可能な行列でも、対角行列に近いジョルダン標準形になら変換することができます。

ジョルダン標準形①

\[\begin{eqnarray}
\left[\begin{array}{cc} 1 & 1 \\ 0 & 1 \end{array} \right]
,\hspace{3mm}
\left[\begin{array}{cc}
1 & 1 & 0 \\
0 & 1 & 0\\
0 & 0 & 1
\end{array} \right]
\end{eqnarray}\]

ジョルダン標準形をよりわかりやすく確認するために、もっと大規模な行列で見てみましょう。ジョルダン標準形は、次のような行列のことです(空白には0が入ります)。

ジョルダン標準形②

\[\begin{eqnarray}
\left[\begin{array}{cccc|ccc|c}
3 & 1 & & & & & & \\
& 3 & 1 & & & & & \\
& & 3 & 1 & & & & \\
& & & 3 & & & & \\
\hline
& & & & 4 & 1 & & \\
& & & & & 4 & 1& \\
& & & & & & 4 & \\
\hline
& & & & & & & 2\\
\end{array} \right]
\end{eqnarray}\]

このように対角行列と同じように対角成分に同じ数が並び、その一つ上に1が斜めに並ぶようなブロックが複数存在するような行列がジョルダン標準形です。

またこの例では \(4\times4\) のブロック、\(3\times3\) のブロック、\(1\times1\) のブロックに分かれていますが、これらのブロックのことを「ジョルダン細胞」と呼びます。一つのジョルダン細胞内では、固有値はすべて同じになります。

なお以下のような場合はジョルダン標準形ではありません。ジョルダン細胞に含まれない部分(枠外の部分)に1が入っているからです。

ジョルダン標準形ではない行列

\[\begin{eqnarray}
\left[\begin{array}{cccc|ccc|c}
3 & 1 & & & & & & \\
& 3 & 1 & & & & & \\
& & 3 & 1 & & & & \\
& & & 3 & 1 & & & \\
\hline
& & & & 4 & 1 & & \\
& & & & & 4 & 1& \\
& & & & & & 4 & 1\\
\hline
& & & & & & & 2\\
\end{array} \right]
\end{eqnarray}\]

あくまでも、それぞれのジョルダン細胞の対角線成分の一つ上にのみ、1が並んでいるものがジョルダン標準形です。

2. ジョルダン標準形の意義

それでは、このジョルダン標準形にはどのような意義があるのでしょうか。それは以下の通りです。

ジョルダン標準形の意義

  • 固有値と固有ベクトルが確認しやすくなる。
  • 対角行列と同じようにべき乗の計算ができるようになる。

それぞれ解説します。

2.1. 固有値と固有ベクトルがわかりやすい

もう一度、先ほどのジョルダン標準形②を見てみましょう。

\[\begin{eqnarray}
\left[\begin{array}{cccc|ccc|c}
3 & 1 & & & & & & \\
& 3 & 1 & & & & & \\
& & 3 & 1 & & & & \\
& & & 3 & & & & \\
\hline
& & & & 4 & 1 & & \\
& & & & & 4 & 1& \\
& & & & & & 4 & \\
\hline
& & & & & & & 2\\
\end{array} \right]
\end{eqnarray}\]

これは次の3つのジョルダン細胞から成り立っています。

\[\begin{eqnarray}
a =
\left[\begin{array}{cc}
3 & 1 & 0 &0\\
0 & 3 & 1&0\\
0 & 0 & 3&1\\
0&0&0&3
\end{array} \right],
\hspace{3mm}
b =
\left[\begin{array}{cc}
4 & 1 & 0\\
0 & 4 & 1\\
0 & 0 & 4\\
\end{array} \right],
\hspace{3mm}
c =
\left[\begin{array}{cc}
2 \\
\end{array} \right]
\end{eqnarray}\]

まず、ジョルダン細胞 \(a\)の固有値は3だけです。そして、固有ベクトルは \(\begin{eqnarray}\left[\begin{array}{cc}1 & 0 & 0 & 0\end{array} \right]^T\end{eqnarray}\) だけです。

続いてジョルダン細胞 \(b\) の固有値は4、固有ベクトルは、\(\left[\begin{array}{cc}0 & 0 & 0 & 0 &1&0 &0\end{array} \right]^T\)です。最後にジョルダン細胞 \(c\) の固有値は2、固有ベクトルは、\(\left[\begin{array}{cc}0 &0 &0 &0 &0 &0 &0 &1 \end{array} \right]^T\) です。

このようにジョルダン標準形は、固有値と固有ベクトルの数と関係性がひと目でわかるようになっています。

具体的には次の通りです。

ジョルダン細胞の固有値と固有ベクトル

  • 対角成分が固有値を示す。
  • 対角成分の同一の固有値の個数が重解の数を示す。
  • ジョルダン標準形の中のジョルダン細胞の数が、線型独立な固有ベクトルの数を示す。

つまり、ある行列 \(A\) をジョルダン標準形に変換すれば、これらのことが非常にわかりやすくなるのです。

2.2. べき乗の計算がやりやすい

それでは次にジョルダン標準形のべき乗の計算を見てみましょう。まずはジョルダン細胞 \(a\) から見ていきます。このジョルダン細胞は、次のように分解することができます。

\[\begin{eqnarray}
a = 3I+Z \\
\end{eqnarray}\]

\[\begin{eqnarray}
3I=
\left[\begin{array}{cc}
3 & 0 & 0 & 0\\
0 & 3 & 0 & 0\\
0 & 0 & 3 & 0\\
0 & 0 & 0 & 3
\end{array} \right],
\hspace{3mm}
Z =
\left[\begin{array}{cc}
0 & 1 & 0 & 0\\
0 & 0 & 1 & 0\\
0 & 0 & 0 & 1\\
0 & 0 & 0 & 0
\end{array} \right]
\end{eqnarray}\]

このように分解しておくと簡単になります。

このうち \(3I\) のべき乗の計算方法はわかりますね。それでは \(Z\) の方はどうでしょうか。これは以下の通り、べき乗をする度に、それぞれの成分が1列右にずれていくというものになります。

\[\begin{eqnarray}
Z^2=
\left[\begin{array}{cc}
0 & 0 & 1 & 0\\
0 & 0 & 0 & 1\\
0 & 0 & 0 & 0\\
0 & 0 & 0 & 0
\end{array} \right],
\hspace{3mm}
Z^3 =
\left[\begin{array}{cc}
0 & 0 & 0 & 1\\
0 & 0 & 0 & 0\\
0 & 0 & 0 & 0\\
0 & 0 & 0 & 0
\end{array} \right],
\hspace{3mm}
Z^4 =
\left[\begin{array}{cc}
0 & 0 & 0 & 0\\
0 & 0 & 0 & 0\\
0 & 0 & 0 & 0\\
0 & 0 & 0 & 0
\end{array} \right]
\end{eqnarray}\]

これが分かれば、例えばジョルダン細胞 \(a\) の2乗は次のように計算することができます。

\[\begin{eqnarray}
a^2
&=&
(3I+Z)^2 \\
&=&
3^2I^2+2\cdot3IZ+Z^2\\
&=&
3^2I+2\cdot3Z+Z^2
\end{eqnarray}\]

つまり、次のようになります。

\[\begin{eqnarray}
a^2=
\left[\begin{array}{cc}
3^2 & 2\cdot3 & 1 & 0\\
0 & 3^2 & 2\cdot3 & 1\\
0 & 0 & 3^2 & 2\cdot3\\
0 & 0 & 0 & 3^2
\end{array} \right]
\end{eqnarray}\]

そして、\(a\) の3乗は次のように計算することができます。

\[\begin{eqnarray}
a^3
&=&
(3I+Z)^3 \\
&=&
3^3I^3+3\cdot3^2I^2Z+3\cdot3IZ^2+Z^3\\
&=&
3^3I+3\cdot3^2Z+3\cdot3Z^2+Z^3
\end{eqnarray}\]

つまり、次のようになります。

\[\begin{eqnarray}
a^3=
\left[\begin{array}{cc}
3^3 & 3\cdot3^2 & 3\cdot3 & 1\\
0 & 3^3 & 3\cdot3^2 & 3\cdot3\\
0 & 0 & 3^3 & 3\cdot3^2\\
0 & 0 & 0 & 3^3
\end{array} \right]
\end{eqnarray}\]

同じ要領で \(a\) の4乗は次のようになります。

\[\begin{eqnarray}
a^4
&=&
(3I+Z)^4 \\
&=&
3^4I^4 + 4\cdot3^3I^3Z+ 6\cdot3^2I^2Z^2+ 4\cdot3IZ^3+Z^4\\
&=&
3^4I + 4\cdot3^3Z+ 6\cdot3^2Z^2+ 4\cdot3Z^3+Z^4
\end{eqnarray}\]

つまり、次のようになります。

\[\begin{eqnarray}
a^2=
\left[\begin{array}{cc}
3^4 & 4\cdot3^3 & 6\cdot3^2 & 4\cdot3\\
0 & 3^4 & 4\cdot3^3 & 6\cdot3^2\\
0 & 0 & 3^4 & 4\cdot3^3\\
0 & 0 & 0 & 3^4
\end{array} \right]
\end{eqnarray}\]

このようにして、どれだけ大きな \(t\) 乗でも計算することができます。これを一般式に表したものが以下です。

\[\begin{eqnarray}
a^t=
\left[\begin{array}{cc}
3^t & t\cdot 3^{t-1} & {}_t C_2 \cdot^{t-2} & {}_t C_3 \cdot^{t-3}\\
0 & 3^t & t\cdot 3^{t-1} & {}_t C_2 \cdot^{t-2}\\
0 & 0 & 3^t & t\cdot 3^{t-1}\\
0 & 0 & 0 & 3^t
\end{array} \right]
\end{eqnarray}\]

なお \(C\) は組み合わせ記号で、\({}_t C_s=\dfrac{t!}{s!(t-s)}\) で計算します。

以上のことから、\(f(\lambda^t)\) として、\(f\) を \(\lambda\) で \(s\) 回微分した式を \(f^{(s)}(\lambda)=\dfrac{d^s}{d\lambda^s}f(\lambda)\) とおけば、サイズ \(m\) のジョルダン細胞の \(t\) 乗は次のように計算することができます。

\[\begin{eqnarray}
\left[\begin{array}{cc}
f(\lambda) & f^{(1)}(\lambda) & \frac{1}{2}f^{(2)}(\lambda) & \frac{1}{3!}f^{(3)}(\lambda) & \cdots & \frac{1}{(m-1)!}f^{(m-1)}(\lambda) \\
& f(\lambda) & f^{(1)}(\lambda) & \frac{1}{2}f^{(2)}(\lambda)& \cdots & \frac{1}{(m-2)!}f^{(m-2)}(\lambda) \\
& & \ddots & \ddots & \ddots & \vdots \\
& & & \ddots & \ddots & \frac{1}{2}f^{(2)}(\lambda) \\
& & & & \ddots & f^{(1)}(\lambda) \\
& & & & & f(\lambda) \\
\end{array} \right]
\end{eqnarray}\]

上で示したジョルダン標準形②全体のべき乗 \(J^t\)、はそれぞれのジョルダン細胞の \(t\) 乗を計算しておけば、最後にそれらをまとめて次のようになります。

\[\begin{eqnarray}
J^t=
\left[\begin{array}{cc}
a^t & 0 & 0 \\
0 & b^t & 0 \\
0 & 0 & c^t \\
\end{array} \right]
\end{eqnarray}\]

具体的には、たとえば3乗の場合、それぞれのジョルダン細胞の計算結果は次のようになります。

\[\begin{eqnarray}
a^3=
\left[\begin{array}{cc}
27 & 27 & 9 & 1\\
0 & 27 & 27 & 9\\
0 & 0 & 27 & 27\\
0 & 0 & 0 & 27
\end{array} \right],
b^3=
\left[\begin{array}{cc}
64 & 48 & 12 \\
0 & 64 & 48 \\
0 & 0 & 64 \\
\end{array} \right],
c^3=
\left[\begin{array}{cc}
8
\end{array} \right],
\end{eqnarray}\]

そのため、\(J^3\) はこれらを元のブロックにはめこんで、以下のようになります。

\[\begin{eqnarray}
J^3=
\left[\begin{array}{cccc|ccc|c}
27 & 27 & 9 & 1 & & & & \\
& 27 & 27 &9 & & & & \\
& & 27 & 27 & & & & \\
& & & 9 & & & & \\
\hline
& & & & 64 & 48 & 12 & \\
& & & & & 64 & 48& \\
& & & & & & 64 & \\
\hline
& & & & & & & 8\\
\end{array} \right]
\end{eqnarray}\]

あとは対角行列の場合と全く同じです。このジョルダン標準形を導き出したもともとの行列を \(A\) としたら、固有ベクトルを列ベクトルとした行列 \(P\) とその逆行列で挟めば計算終了です。

\[
A^t=PJ^tP^{-1}
\]

さて、ここで \(P\) は固有ベクトルを列ベクトルとした行列ですが、そもそも対角化できない \(n\) 次行列では、独立した固有ベクトルが \(n\) 本になりません。そのため \(P\) を作れないことが対角化できない原因でした。

それでは、ジョルダン標準形における \(P\) はなんなのでしょうか。この点について、次のジョルダン標準形の求め方で解説します。

3. ジョルダン標準形の求め方

対角行列になるものも含めて、ジョルダン標準形はどのような正方行列でも求めることができます。その方法について確認しましょう。

3.1. ジョルダン標準形を求める

やり方は、行列の対角化とほとんど同じです。例として以下の2次正方行列の場合で見ていきましょう。

\[\begin{eqnarray}
A=
\left[\begin{array}{cc}
4 & 3 \\
-3 & -2 \\
\end{array} \right]
\end{eqnarray}\]

まずはこの行列の固有値と固有ベクトルを求めます。計算すると固有値は1、固有ベクトルは \(\left[\begin{array}{cc}1 \\-1 \end{array} \right]\) になります。(求め方は『固有値と固有ベクトルとは何か?幾何学的意味と計算方法の解説』で解説しています)。

この時点で、対角線が固有値、対角線の上が1になるという性質から、行列 \(A\) のジョルダン標準形は以下の形になることがわかります。

\[\begin{eqnarray}
J=
\left[\begin{array}{cc}
1 & 1 \\
0 & 1 \\
\end{array} \right]
\end{eqnarray}\]

3.2. 行列 \(P\) を求める

さて問題は、この行列 \(A\) は固有ベクトルが一つしかないので、\(P^{-1}AP=J\) における、固有ベクトルを列ベクトルとした正方行列であり逆行列をもつ正則行列である \(P\) を作ることができないということです。

\(P\) がなければ、元の行列 \(A\) のべき乗を求めることが困難です。

それではどうすれば良いのでしょうか。簡単です。

まず逆行列の性質より、\(P^{-1}AP=J\) は \(AP=PJ\) と置き換えることができます。この方程式を解くために、他方の列ベクトルを未知数とした行列 \(P\) を無理矢理作って代入します。

\[\begin{eqnarray}
AP=PJ
\hspace{4mm} &\Longleftrightarrow &\hspace{4mm}
\left[\begin{array}{cc}
4 & 3\\
-3 & -2 \\
\end{array} \right]
\left[\begin{array}{cc}
1 & x\\
-1 & y \\
\end{array} \right]
=
\left[\begin{array}{cc}
1 & x\\
-1 & y \\
\end{array} \right]
\left[\begin{array}{cc}
1 & 0\\
1 & 1 \\
\end{array} \right]\\
&\Longrightarrow & \hspace{4mm}
\left[\begin{array}{cc}
1& 4x+3y\\
-1 & -3x-2y \\
\end{array} \right]
=
\left[\begin{array}{cc}
1 & 1+x\\
-1 & -1+y \\
\end{array} \right]\\
&\Longrightarrow & \hspace{4mm}
\left[\begin{array}{cc}
1& 4x+3y\\
-1 & -3x-2y \\
\end{array} \right]

\left[\begin{array}{cc}
1 & 1+x\\
-1 & -1+y \\
\end{array} \right]
=0 \\
&\Longrightarrow & \hspace{4mm}
\left[\begin{array}{cc}
0& 3x+3y-1\\
0 & -3x-3y+1 \\
\end{array} \right]
=
0
\end{eqnarray}\]

以上のことから、\(3x+3y=1\) が導き出されます。そして、この方程式から、仮に \(x=\frac{1}{3}, y=0\) とすれば、もう一つの疑似的固有ベクトルとして、\(\left[\begin{array}{cc} \frac{1}{3}\\ 0 \end{array} \right]\) を得ることができます。

これを代入することで、\(P=\left[\begin{array}{cc} 1 & \frac{1}{3}\\ -1 &0 \end{array} \right]\) を定めることができます。

実際に、\(P^{-1}AP\) を計算すると以下のようになり、ジョルダン標準形が求まることがわかります。

\[\begin{eqnarray}
P^{-1}AP=
\left[\begin{array}{cc}
0 & -1 \\
3 & 3 \\
\end{array} \right]
\left[\begin{array}{cc}
4 & 3 \\
-3 & -2 \\
\end{array} \right]
\left[\begin{array}{cc}
1 & \frac{1}{3} \\
-1 & 0 \\
\end{array} \right]
=
\left[\begin{array}{cc}
1 & 1 \\
0 & 1 \\
\end{array} \right]
\end{eqnarray}\]

以上のことから \(P\) が求まりました。これを使えばべき乗の計算も思うがまま行うことができます。

4. まとめ

以上がジョルダン標準形です。ぜひ参考にして頂ければと思います。

Python初心者におすすめのプログラミングスクール

「未経験からでもPythonを学べるプログラミングスクールを探しているけど、色々ありすぎてわからない」なら、次の3つのプログラミングスクールから選んでおけば間違いはありません。

Aidemy Premium:全くの初心者ができるだけ効率よく短期間で実務的に活躍できるAI人材になることを目的とした講座。キャリアカウンセリングや転職エージェントの紹介などの転職支援も充実しており、受講者の転職成功率が高い。

AIジョブカレPythonの基本をおさえた人が、実際に機械学習やディープラーニングを活用できるようになるための講座。転職補償型があるなどキャリア支援の内容が非常に手厚く、講師の質も最高クラス。コスパ最高。Python初心者用の対策講座もある。

データミックスプログラミング経験者のビジネスマンが、更なるキャリアアップのためにデータの処理方法を学んでデータサイエンティストになるための講座。転職だけでなく起業やフリーランスとして独立する人も多い。Python初心者用の対策講座もある。

特に、あなたが以下のような目標を持っているなら、この中から選んでおけば間違いはないでしょう。

・未経験からPythonエンジニアとして就職・転職したい
・AIエンジニアやデータサイエンティストとしてキャリアアップしたい
・起業やフリーランスを視野に入れたい

理由は「Python初心者のためのおすすめプログラミングスクール3選」で解説しています。



よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメント一覧 (1件)

  • 実数空間においては、
    ジョルダン標準形にできる<=>n次正方行列が固有値を重複含めてnコ持つ
    んでしたっけ。。??
    であれば、「n次正方行列が固有値を重複含めてnコ持つ」は、固有方程式を解いて、固有値の数を確認するしか確認方法がなかったでしたでしょうか?(もっと楽な方法なかったでしょうか!)

そう へ返信する コメントをキャンセル

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次
閉じる