目次

キーワード

概要

2006年度前期輪講で発表した内容にそって説明を書く予定。

行列の、座標変換によって不変な性質を調べる。

座標変換によって不変な特徴量があるならば、その量こそが行列の本質を表す量なのではないか。

英語だとまさに、characteristic value、行列の“特性”値。 ちなみに、eigen はドイツ語起源の接頭語。 (英語だと own、「自分自身の」「自身に固有の」という感じの意味。 発音もドイツ語的にアイゲン。 というか、ドイツ語起源なので英語圏の人でも読めない場合があって、 エイジャンとかアイジャンとか読む人も。) 固有値の「固有」は「eigen」の訳語。

対角化、Jordan 標準形

行列の冪計算、指数計算

相似変換

線形写像」で説明しましたが、 線形写像を行列で表すとき、 線形空間の座標系の取り方によって行列の形が変わります。

となると、線形写像の性質は、座標系の取り方によって変わってしまうか?という疑問が生じます。 実際、行列の見た目は座標の取り方によってがらりと変わってしまいます。 しかしながら、これからこの章で説明していくように、 座標系の取り方を変えても変化しない性質もあります。 そういう、座標系の取り方によらない性質こそが、 線形写像の本質を表しているのではないかと考えるのが妥当でしょう。

そういうわけで、 これ以降、 座標変換によって不変な行列の性質を調べていくことになります。

まず、座標変換を行ったときに行列の形がどう変化するかを考えましょう。 線形空間 V の元がある座標系によって、 ベクトル x, y で表されているといます。 このとき、xy に移す線形写像は、 行列 A を用いて

y = A x

と表されます。 ここで、 別の座標系を用いた場合にどうなるかを考えるわけですが、 「座標変換」で説明したように、 座標変換もある正則行列 P を用いて、

x = P x'
y = P y'

と表すことができます。 したがって、新しい座標系で表されたベクトル x', y' の間には以下の関係が成り立ちます。

y' = P-1 A P x'

すなわち、元々の座標系では行列 A で表されていた線形写像は、 新しい座標系では P-1 A P という形に変化します。 このような、P-1 A P という形の変形を、 相似変換(similar transform)と呼びます。 これまでの説明の通り、相似変換は行列の座標変換に相当します。

さて、元の話題に戻りますが、 この相似変換の考え方を用いると、 「座標変換によって変化しない線形写像の性質」 というのは、 「相似変換によって変化しない行列の性質」 ということになります。

行列の対角化と冪計算

前節で言うような「相似変換によって変化しない行列の性質」 として、これから説明する固有値や固有ベクトルという物があるのですが、 そういう概念を説明する前に、もう少し簡単な話から初めて見ましょう。

最初の一歩として、相似変換によって、行列を簡潔な形に変形できないかを考えてみます。 「簡潔な形」というのは、例えば行列の冪などが計算しやすい形です。 最も分かりやすい形と言うと、対角行列(diagonal matrix: 対角成分のみを持つ行列)でしょう。 簡単化のために、2次の場合で例を示すと、以下のような行列です。

[
a0
0b
]

対角行列の冪は非常に簡単に計算できて、 以下のようになります。

[
a0
0b
] n[
an0
0bn
]

冪が計算できるなら、 冪級数によって定義される「行列の関数」も同様に簡単に計算できます。

exp [
a0
0b
][
ea0
0eb
]

もし、行列 A が相似変換によって対角行列 Λ に変形できたらな、 行列 A の冪も簡単に計算することができます。 なぜかというと、

Λ = P-1 A P

ならば、

Λ2 = P-1 A P P-1 A P = P-1 A A P = P-1 A2 P

より一般的に、

Λn = P-1 An P

となるので、 A の冪計算を Λ の冪計算に帰着することができます。

行列の対角化可能性

前節の通り、行列を相似変換によって対角行列に変形(対角化)したいわけですが、 任意の行列が対角化できるわけではありません。 ただし、結論から先に言ってしまえば、 行列は相似変換によって以下の3つのいずれかの形に帰着させることができます。

  1. 拡大:対角行列

  2. 傾斜:2重対角行列

  3. 回転:回転行列

1の対角行列は、 図1のように、座標軸にそって縦横にそれぞれ拡大するようなイメージのものになります。

縦横拡大: 対角行列
縦横拡大: 対角行列

2の2重対角行列は、 図2のように、ある座標軸にそって斜めに押しつぶすようなイメージのものになります。

傾斜: 2重対角行列
傾斜: 2重対角行列

最後に、3の回転行列は、 図3のように、原点を中心に回転するようなイメージのものになります。

回転: 回転行列
回転: 回転行列

固有値と固有ベクトル

それでは、具体的な対角化の方法について考えてみましょう。

行列 A が相似変換によって対角行列 Λ になるということは、 ある正則行列 P があって、

Λ = P-1 A P
∴ P Λ = A P

となるということです。 ここで、Λii 列目の要素を λiPi 列目の列ベクトルを pi と置くと、 この式は、

A pi = λi pi

となります。

このように、 行列 A に対して、 以下のような式を満たすスカラー λA固有値(characteristic value, eigenvalue)、 非0のベクトル pA固有ベクトル(characteristic vector, eigenvector)と呼びます。

A p = λ p

要するに、行列の対角化の問題は、 固有値・固有ベクトルを求める問題に帰着します。 このような問題を固有値問題と呼びます。

固有方程式

さらに、固有値、固有ベクトルを具体的に求める方法を考えます。

固有ベクトルというのは、 要するに、1次方程式 A p = λ p の非 0 解なわけですが、 この式が非 0 解を持つためには、 (A - λI)p0I は単位行列) が「不良設定問題」である必要があります。 したがって、 (A - λI) の行列式は |A - λI| = 0 という条件を満たさなければなりません。

行列式の性質から、 A が n 次正方行列のとき、 行列式 |A - λI| = 0 λ に関する n 次方程式になります。 これを A固有方程式(characteristic equation, eigenequation)呼び、 この方程式を解くことで、重複度も含めて n 個の固有値が求まります。

固有方程式の解のパターンによって、行列が対角化可能か決まります。 具体的には以下のようになるのですが、それぞれの詳細に関しては次節で説明します。

  1. 2つの実数解 → 拡大:対角行列

  2. 重解 → 傾斜:2重対角行列

  3. 複素数解 → 回転:回転行列

拡大: 相異なる実数解の場合

行列 A の固有値が全て互いに異なる実数解 λi の場合、 ここでは証明は省きますが、 異なる固有値に対する固有ベクトルは互いに独立になることが知られています。 そして、得られた n 個の固有ベクトル pi を並べるて得られる行列 P = ( p1 , p2 , ・・・, pn) は、正則になり、 この正則行列 P を使って A を対角化可能です。

Λ = P-1 A P

ただし、Λ は i 行 i 列目の対角成分が λi であるような対角行列です。 (これを、diag{λi} と書いたりします。)

傾斜: 重解を持つ場合

重解の場合でも、 A p = λ p (あるいは、 (A - λI)p0 ) となるベクトルが解の重複度と同じだけあれば、対角化することが可能です。 しかしながら、これは必ずしも成り立たず、 最悪の場合、解が1つしかない場合もあります。

そういう場合には、 (A - λI)p0 の代わりに、 解の重複度を k として、 (A - λI)kp0 を満たすベクトルを使います。 (これは k 個あることが保証されます。)

通常、1本目は (A - λI)p10 となるものを選びます。 そして、この式を満たすベクトルが1つしかない場合には、 2本目は (A - λI)p2p1 となるものを選びます。 (こうすれば、 (A - λI)2p20 を満たします。) 重複度が 3 以上の場合にも、逐次、 (A - λI)pi+1pi とします。

こうして得られたベクトルは互いに独立になることが知られています。 行列 A を対角化することはできないんですが、 個々で得られたベクトルを並べた行列 P を使って、 以下のような形の行列に変形することが可能です。

[
λ1
λ1
λ1
・・・
λ
] = P-1 A P

ただし、行列中の空白の部分は全て 0 です。 すなわち、対角成分と、その1つ上の成分だけが非 0 で、その他はすべて 0 です。 また、対角の1つ上の成分は全て 1 です。 このような行列を、2重対角行列(double diagonal matrix)と呼びます。

回転: 共役複素数解の場合

解が複素数解の場合、 実数の範囲では対角化ができません。

でも、複素数行列になってしまってもいいなら対角化できます。 そこで、

[
λ0
0 λ*
] = P-1 A P ,   P = (p p*)

xx の共役複素数。 λ に対応する固有ベクトルが p なら、 λ に対応する固有ベクトルは p* になる。 ) という形で対角化されているものを、実数の範囲に直すことを考えます。

やり方は簡単で、 λp を それぞれ、

λ = a + i b
px + i y

というように、実部・虚部に分けると、 複素数の範囲で対角化されていた先ほどの式を、 以下のように変形することができます。

[
a-b
ba
] = P'-1 A P' ,   P' =
1
2
P [
1-i
1i
](x y)

簡単な計算で確認できるので、一度計算してみてください。

この左辺の行列ですが、極形式

λ = a + i b = r (cosθ + i sinθ)

で表すと、以下のようになります。

[
a-b
ba
] = r [
cosθsinθ
sinθcosθ
]

これは、原点を中心に r 倍、 θ の回転を表す行列になります。

Jordan の標準形

これまで、相異なる実数解、重解、複素数解の場合についてそれぞれ説明しました。 これらが混在している場合には、 図4に示すような、対角、2重対角、回転が混在した行列に変形することになります。

Jordan 標準形
Jordan 標準形

このような形式の行列を、Jordan の標準形(Jordan normal form)あるいはJordan 行列(Jordan matrix)と呼びます。 (Jordan は人名。ジョルダン。フランス人。 物理学者に同じスペルでヨルダンと読む人がいてややこしい。)

行列の冪、指数

執筆予定

Jordan cell

Jordan 行列の冪は Jordan cell の冪計算に帰着


ここから先は、複素数の範囲で対角化することにして、
(回転行列は使わない。複素数の対角行列にする)

Jordan 標準形は、対角行列と冪零行列の和に分解できる。
Λ + N
  [λ1        ]
Λ=[    λ2    ]
  [        λ3]
  [0 1 0]
 N=[0 0 1]
  [0 0 0]
みたいな感じ。

このとき、
- ΛとNは必ず可換。
- N は次数が k なら k 乗すると必ず 0 になる。
    [0 0 1]
N^2=[0 0 0]
    [0 0 0]
みたいな感じで、冪乗するたびに、1 のある場所が1行上に移動。

Λ と N が可換なとき、
(Λ + N) の冪乗は2項展開可能。
N の k 乗までの項だけ計算すれば OK。

行列の指数関数 exp(A) に関しては、
A と B が可換のとき、
exp(A + B) = exp(A) + exp(B)
が成り立つ。
対角行列 Λ の指数 exp(Λ) は簡単に計算可能。
exp(N) も、冪級数の k 項目まで計算すれば OK。

最小多項式とハミルトン・ケイリーの定理

(書きかけ)

固有ベクトル展開

(固有値に重根を持つ場合は拡張固有空間まで含めて) N 次行列の固有ベクトルは N 本あって、これらは一次独立なので、 任意の N 次元ベクトルは、固有ベクトルの線形結合で表せる。

要するに、 行列 A の固有ベクトルを xii = 1N)として、 任意のベクトル x は、 x =

N
i=1
ai xi と展開可能。

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

行列 A の固有方程式を f(x)=det(A x) (ただし、I を単位行列として、 xI を単に x と略記しています。) とすると、 この(複素数を定義域とする)関数に、 形式的に行列 A を代入したもの、 f(A) は、任意のベクトル x に対して、

f(A) x =0

を満たします。 これをハミルトン・ケイリーの定理と呼びます。

説明を簡単化するために、2次の行列の場合で説明しますが、 行列 A の固有値を λ1, λ2、 それぞれ対応する固有ベクトルを x1, x2 とします。

(A λ1) x1=0
(A λ2) x2=0

が成り立っています。 ここで、 (A λ1)(A λ2) が可換 ( (A λ1)(A λ2)=(A λ2)(A λ1) ) なのと、 任意のベクトル x が固有ベクトルを使って展開可能 ( x = a x1+ b x2 となる実数 a, b が存在する ) ので、

(A λ1) (A λ2) x =(A λ1)(A λ2)( a x1+ b x2)
  =(A λ2)(A λ1) a x1+(A λ1)(A λ2) b x2=(A λ2)0+(A λ1)0=0
(A λ1) (A λ2) x =0

となります。 結局、これは、 f(A) x =0 を意味しています。 3次以上の場合でも、同様の議論によって、 f(A) x =0 が証明できます。

最小多項式

行列 A の ある固有値 λik 重根のとき、 (A λi) xi=0 を満たす一次独立なベクトル xik 個あることもあれば、 それ未満なこともあります。

k 個ある場合には、行列 A は対角化可能。 (さもなくば、2重対角化しかできない。)

k 重根があるときの固有方程式は

f(x)=(x λ1)(x λi)k(x λn)

で、これに形式的に行列 A を代入すると、 任意のベクトル x に対して、

(A λ1) (A λi) k (A λn) x =0

になるわけですが、 A λi xi0 を満たす一次独立なベクトルが k 個あるなら、 任意のベクトル x に対して、

(A λ1) (A λi) (A λn) x =0

が成り立ちます。 (i 項目の所の k 乗が不要。)

このように、 任意のベクトル x に対して g(A) x =0 を満たすような最小次数の多項式を、 行列 A最小多項式(minimal polynomial)と呼びます。 上述の説明から分かるように、 最小多項式は、固有方程式から、重根の部分の冪の次数を減らした形の多項式になります。 (必ずしも冪の次数は1にはならない)。

行列が対角化可能な条件は、最小多項式が重根を持たないこと。

余談

ちなみに、ハミルトンとケイリーはそれぞれ別の数学者の名前。

アーサー・ケイリー(Arthur Cayley、1821年8月16日生まれ)、 ウィリアム・ローワン・ハミルトン(William Rowan Hamilton, 1805年8月4日生まれ)

人名が複数並んでいる場合、 昔はアルファベット順に並べたんで、 ケイリー・ハミルトンの定理と呼んでいました。 (この定理は主にケイリーの成果なんですが、 定理に対して誰がどの程度寄与してるかとかってのは判定が難しいですから、 そういうことは抜きにして、名前順とか生年順にする方がもめなくていい。)

でも、最近は、数学者の生年順に並べるようになってきたんで、 ハミルトン・ケイリーの定理と呼ぶようになってきました。 (多分、国際化の影響。 非ローマンアルファベット圏の数学者の並べ方で困るから。 日本語の「ち」を「ti」にするか「chi」にするかで順番変わっちゃうとか。)

余談

実は、固有値・固有方程式の歴史は行列の概念が整理されるよりも古かったりします。 もちろん、行列の概念がないので、「行列の固有値」という言い方はしませんが、 同等の概念が存在しました。

その最も古い例は、

i, j
ai j xi xj = C

という2次式を、適当な座標変換によって、

i
λi yi2 = C

の形に変換するという問題です。 (現代風に言えば、実対象行列の対角化の問題。 λi をこの2次式の固有値と呼んでいました。) このように変換することで、その2次式を、楕円型、一葉双曲型、二葉双曲型等と分類し、 この方程式の描く図形の大まかな形が推測できました。

サンプルプログラム

2次正方行列の固有値計算&図示

.NET Framework 3.0 必須。

デバッグ不十分かも。

更新履歴

ブログ