物理数学I 線形代数

提供: testwiki
ナビゲーションに移動 検索に移動

物理数学I > 線形代数


線形代数

行列の定義と特別な行列

行列の定義

数値を何らかの仕方で組み合わせたものを行列と呼ぶ。 ただし、縦の長さと横の長さを、各行と列でそろえなくてはならない。

例えば、

(a11a12a21a22)

は行列である。 高校までの範囲では、行列は3*3までしか扱わなかった。 しかし、実際には行列はm*n行列が存在し、(m.nは正の整数。) 全てにおいて和、積などの演算を行なうことが出来る。


行列の和,積

行列の和は各要素ごとに和を取ることによって定義される。 このことは、行列の和が可換であり、結合則を満たすことを保証する。 実数倍は、各要素に実数を書けることによって 定義する。この演算は行列に単位行列の定数倍ををかける演算と 等しいことに注意。n*n行列の単位行列はすぐ後に定義する。 これらの操作が可能なことを、行列の線形性と呼ぶ。


行列の積は、

(a11a1nan1ann)×(b11b1nbn1bnn)=(ia1ibi1ia1ibinianibi1ianibin)

で与えられる。これらは2*2,3*3などの行列の演算の 拡張となっている。 この演算は短く

(ab)ij=Σk(aikbkj)

と書かれることがある。 重要な事は、行列の積は n*m行列とm*l行列のように(n,m,lは正の整数。)前の行列の列の数と後の行列の行の数が 一致していないと計算できないことが挙げられる。 このことからもわかるように、行列の積は一般に非可換である。 このことを式で書くと、

ABBA

となる。


単位行列

n*nのように行と列の数が等しい行列のことを正方行列と呼ぶ。 正方行列について、行と列の番号が等しい成分のことを対角成分と呼ぶ。 対角成分でない成分を非対角成分と呼ぶ。

n*n正方行列において、対角成分が全て1であり、非対角成分が 全て0である行列を、n*n単位行列と呼ぶ。 この行列は直接計算を行なうことで、

EA=AE=A

を満たすことが分かる。(Aは任意の行列。) このことは、短く

Σkδikakj=aij

と書かれることがある。 ここで、

δij

は、ijが等しい値を持つとき1を返し、ijが等しくない値を持つとき0を返す行列であり ちょうど単位行列に対応するものになっている。 この

δ

のことを歴史的理由によりクロネッカーのデルタと呼ぶ。


複素共役行列

ここまで、行列の要素がどのような数で与えられているかを指定していなかった。 実用的には多くの場合、行列の中身は実数か複素数のどちらかが与えられる。 とくに行列の複素共役を行列のうちで全ての要素の複素行列を取ったもので 与え、これを行列Aに対してA*と書く。(これらの記号は本によって違いがあるので 注意が必要である。場合によっては、AA¯と書かれることが ある。)

(A*)ij=aij*

また、Aが実数だけで与えられる行列であるなら、その複素共役は Aと一致する。


転置行列

転置行列とは、ある行列Aを

A=aij

で与えるとき、

At=aji

で与えられる。つまり、行列の行と列を入れ換えることで定義される 行列である。この記号も本によって異なるので、それぞれの本をよく読み比べることが 必要となる。

随伴行列

随伴行列はある行列Aに対して、

A=(At)*=(A*)t

で与えられる。つまり、複素共役を取ってしかも転置した行列を 随伴行列と呼ぶのである。 ここでは、を用いたが、 この記号は前のものと同様、本によって統一されていないので注意が 必要となる。


エルミート行列

エルミート行列とは、その行列の随伴行列がその行列自身と一致する行列である。 エルミート行列は行列が実数で与えられているとき、転置が等しい行列に 帰着するが、この行列を対称行列と呼ぶ。 例えば、単位行列はエルミート行列である。

ユニタリ行列

ユニタリ行列(Uで表わされることが多い。)とは、その行列の随伴行列が元の行列の 逆行列となっている行列のことである。

UU=E

ユニタリ行列はもとの行列が実数で与えられているとき、 その行列の転置が、元の行列の逆行列に等しくなっている行列に 帰着するが、この行列を直交行列と呼ぶ。

( TODO ノルムを導入した場合の結論? )

逆行列の一般形

逆行列と一次方程式

一次方程式は、


a11x1+a1nxn=b1
an1x1+annxn=bn


で表わされる方程式である。(ai, biは、定数。) これらの一般解を求める。


上の連立方程式は、行列記法では

Ax=b

と書ける。仮に、Aが逆行列を持つなら、 この式の一般解は、

x=A1b

となる。 よって、1次方程式を解くのは、行列の逆行列を 求めることに等しい。

ここでは、逆行列を具体的に計算する方法を考察し、 その結果を用いて1次方程式を解く方法を考える。 そのために、いくらかの用語を導入する必要がある。

行列式

行列式は、 行列

A=(a11a1nan1ann)

に対して、

σsgnσa1σ1anσn

で与えられる数である。 これだけでは何を言っているか分からないかもしれないが、 順に説明を追っていって欲しい。

ここで、

σ

は、1からnまでの整数の置換のうちのどれかを表わしている。

ここで整数の置換とは、ある整数の集合を取ったとき、それらが 互いに重複しないように ある値をある値に対応させたものである。 例えば、整数の組1,2,3をとったとき

13,21,32

は1つの置換である。 1,2,3がそれぞれ1,2,3のうちの別の数に移っていることに 注目して欲しい。

置換の数はn個の整数の組を用いたときn!個ある。 例えば、 3個の整数の組では、

11,22,33,
11,23,32,
12,21,33,
12,23,31,
13,21,32,
13,22,31

の(6=3!)組となる。

上で挙げた6つの置換の中で 1番上の、全ての整数が変化しない 置換を、単位置換と呼ぶ。単位置換から偶数回だけの 変更を行なって得られる置換を隅置換、奇数回だけの 変更を行なって得られる置換を奇置換と呼ぶ。 ここで言う変更とは、置換の後にある整数が移る数を、別の整数が移る数と 互いに入れ換えることを言う。これが1度だけ起これば奇置換であり、 2回だけ起これば隅置換である。厳密には例えば、1と2という結果を何度も移し変えて 、単位置換自身が2n(nは正の整数。)回置換に対応するということもできる。 しかし、この場合でも単位置換が隅置換である、という主張は変化していない ことがわかる。(ただし0回は偶数なので0置換は隅置換であるとした。) 実はこの結果はより一般的なものであり、 ある置換について様々な入れ換えを行なっても、その置換が 隅置換か奇置換かということには影響しないことが知られている。

  • TODO

導出?

つまり、結局のところある置換が隅置換か奇置換かどうかを決めたいときには、 最も簡単な仕方で1つ結果を得れば、全てのやり方で同じ結果が得られる ことがわかる。

例として上に挙げた6つの置換について、それらが隅置換か奇置換かを判別する。

上でいう2,3,6番目の置換は、それぞれ 単位置換から1度だけ対応する値を交換して得られるので 奇置換である。(それぞれ2と3、1と2、3と1)を交換して 得られる。 単位置換は0階の交換で得られるので隅置換であり 残った2つはそれぞれ2組の数値の入れ換えをすることで 得られるので、隅置換である。

行列式の定義の式

σsgnσa1σ1anσn

で、

sgnσ

は、

σ

が隅置換であるとき、+1、奇置換であるとき-1となる。 つまり、単位置換をして得られる、

a11ann

の様な項に対しては、1をかけ算し、 ある奇置換

a12a21a33a44αnn

については-1をかけ、 そのような値を全て足し合わせるということがこの計算の主旨となっている。

実際には、置換の数はn!の速さで増えるので、これらの項数は急激に増える。 そのため、n=2,3,4ぐらいのときを除いて、計算機を使わないで 値を得ることは困難になる。


  • 計算例

例えば、2次行列について計算する。このときは置換の数は 2つであるので、計算は簡単である。

2*2行列Aを

A=(abcd)

で与える。行列式の定義にしたがって計算すると、

detA=a11a22a12a21=a×dc×b=adbc

となる。この値は高校ではΔと呼ばれていた量であるが この量は行列の行列式であったわけである。

3次の行列式では、

A=(abcdefghi)=a11a22a33+a12a23a31+a13a21a32a11a23a32a13a22a31a12a21a33=aei+bfg+cdhafhbdiceg

となる。 これは、斜めに数を掛け合わせていったものに等しいことに注意。 例えば、第1項aeiは、1行1列のaから、3行3列のiまでを右下に向かって 順に書けていったものに等しい。また、次のbfgは、1行2列のbから始めて、 右下に向かってかけ算していったものに等しい。2行3列のfのあとは 端を突き抜けて、3行1列のgにいたることに注意。 4から6番目の項は、右下に向かってではなく左下に向かって 書けていった値となり同時にかけ算した値に(-1)をかける必要がある。 このような計算法を サラスの公式と呼ぶことがある。

一方、4 * 4 以降の行列ではこのような簡単な計算法は 得られないので定義に従ってじょじょに計算していくことが求められる。


行列式は重要な性質として、

detAB=detAdetB

という性質を持っている。

  • TODO

(:導出?)

小行列式

ここでは、いきなり定義を与える。

A=(a11a1nan1ann)

に対して、 m行とr列を除いて得られる(n-1)*(n-1)行列の行列式を、 行列Aのm行r列に関する小行列式と呼ぶ。

つまり、ある列と行を1本ずつ除いて、出来た行列の行列式を取ると それが小行列式となっているわけである。

行列式の展開

行列式の計算を簡単に行なうため、 式の展開を導入する。この方法を用いると、 多くの行と列を持つ行列の行列式が比較的簡単に計算できる。 ただし、実際にはこの方法は基本行列による変形と組み合わせて使われることが 多いので、これだけを見てもそれほど便利とは感じないかも知れない。

  • TODO

基本行列の導入

永年行列式の計算のためにも...

行列式の展開とは、

A=(a11a1nan1ann)

に対して、

detA=k=1n(1)m+kamkbmk,または
detA=k=1n(1)r+kakrbkr

が成り立つ。 ここで、

bmk

は、 m行k列に関する行列Aの小行列式である。

この式はn*nの行列の行列式を n個の(n-1)*(n-1)行列の行列式の和によって表わしている。 このことから、この操作を行列式の展開と呼ぶのである。


  • 導出

例えば、n*nの行列式において mk項を含む値は、 他に、m行または、k列に含まれる項を含んでいてはならない。 (これは、行列式に含まれる値がそれぞれn個の整数の置換であり、 その中でm行またはk列を表わす数は、1度しか含まれていないことによる。) またそれ以外の項は、全体の置換が隅置換であったら前の符合が1になるように、 奇置換であったら前の符合が-1になるように計算されるが、 これはまさしく、m行とk列を除いた(n-1)*(n-1)行列の行列式、 すなわちm行k列に関する行列Aの小行列式 に 他ならない。 同様の考察を行列中の他の項についても繰りかえすと、 行列式の展開の式を得る。

例えば、3行3列の行列式の計算を行なうとき、 行列式の展開を使うと、

det(abcdefkji)=adet(efji)bdet(dfki)+cdet(dekj)

となり、2次の行列の行列式の計算に帰着する。 それぞれの小行列式の前につく符合がi行j列であったら (1)i+jに比例することに注意。 実際にはこのままだとあまり計算量が減っている感じがせず、 実際そうなのだが、特にある行または列にただ1つだけ0でない数が 入っており、残りは全て0という行や列が存在したとき、この行列式の 展開によってn*n行列はただ1つの(n-1)*(n-1)行列に帰着し、非常に 計算が楽になる。

余因子行列

ここでも無味乾燥な定義が続くが、がんばってもらいたい。 実はこの量は線形代数が終わるとほとんど出て来なくなるので 定義などしなくてもよさそうなものなのだが、とはいえこの量を 置かないと、次の逆行列の記述が非常に大変になるので、 ここでは導入するのである。

ある行列n*n行列Aに対して、

cij=(1)i+jbji

で定義される行列Cを行列Aの余因子行列と呼ぶ。 ここでbjiは、 行列Aの行j列iに関する小行列式である。

例えば、2*2行列でこの値を計算してみる。 実際には3*3行列以降では、これを得るために n*n個の行列式の計算をせねばならなくなるので、 計算はかなり大変になる。そのため、ここでは2*2行列を 扱うのである。

2*2行列では余因子行列も2*2なので、4つの小行列式を計算すればよい。 実際には2*2の行列式の小行列式は1*1の行列の行列式、というか 1*1の行列はただの数であるので 余因子行列は簡単に求められる。

A=(abcd)

として実際に計算すると、

c11=b11=a22=d
c12=b21=a12=b
c21=b12=a21=c
c22=b22=a11=a

が得られる。よってAの余因子行列Cは、

C=(dbca)

となる。この形は実は2*2行列の逆行列の形と同じ形をしている。 つまり、この行列はAの逆行列に比例しているのである。 実はこれは一般的な結果で、ある行列の逆行列は その行列の余因子行列を元の行列の行列式で割ったものになる。 ただし、Aの行列式が0に等しいときは例外であり、このとき行列A は逆行列を持たない。 次のセクションではそのことの一般的な証明を 与える。

逆行列の一般型

まずは、先ほどの結果をまとめる。

ある行列Aの逆行列は、

A1=1detAC

で書かれる。 ここでCは、Aの余因子行列である。 ただし、det A が0に等しいとき、行列Aは逆行列を持たない。

  • 導出

ここでは具体的に行列ACを計算し、 その結果が

(detA)E

に等しいことを示す。(Eは単位行列。) 一般的に、第l行について考える。(l = 1 , ... , nとする。) このとき、ACのll要素を考えると、

m=1nalmcml
=m=1nalm(1)m+lblm,

(blmは、行列Aの行l、列mに関する小行列式。)

=detA

(式の展開の逆) となり、ここでは確かに

(detA)E

と一致した結果になる。

次に、l行で、i列(i = 1, ... , n : l 以外) について ACを考える。ここでは0になってくれるとよい。

m=1nalmcmi
m=1nalm(1)m+ibim

これは、行列Aで、i行目をl行目で置き換えた行列の行列式に等しい。 行列式で行列のうちのある行か、ある列が他の行か他の列と一致する場合、 その2つの行または列からの寄与は必ず打ち消しあう。 よってi列からの寄与は0に等しい。 よって求める行列 ACは、

(detA)E

となり、

1detAC

は、(CはAの余因子行列) Aの逆行列に等しいことが分る。

これによって、ある正方行列が与えられたとき、その行列の 逆行列を求める一般的な方法が得られたわけである。

しかし、実際にはこの計算は多くの計算量を必要とするので 実用的な計算には用いられない。 実用的な計算にはガウスの消去法が 用いられることが多い。 ガウスの消去法は計算機科学か数学の線形代数で扱われる。

クラメルの公式

テンプレート:Main ある一次方程式

Ax=b

が与えられたとき、 Aの行列式が0でないとき、その解は

bi=1detA|a11a1,i1b1a1,i+1a1nan1an,i1bnan,i+1ann|

で与えられる。

  • 導出
x=A1b

となる。 このとき、A1について 一般的な表式を用いると、

rhs=1detACb=1detAjCijbj=1detAj(1)i+jBjibj=1detA|Areplaced|i(?)

ここで、 BijはAのi行j列に関する小行列式であり、Areplacedは、上で示したi番目の要素については行列Ai列目を列ベクトルbで置き換えたものである。

これを用いて一般的に1次方程式の解が得られることが分る。

つまり、どんな1次方程式が現われても瞬時に答が得られるということである。

実際には計算が大変な事も多いので、この公式に頼らない方法も計算機科学の分野を中心に多く知られている。

一般的な方法としては基本行列を使った方法が良く知られているがいつその方法が書かれるかは今の時点では分からない。

determinant = 0 の幾何学的意味

determinant が0であるとき、その行列には 逆行列が存在しない。 例えば、2次の行列A では、det A = ad - bc= 0 のとき、その行列には 逆行列が存在しない。

これは実際には、a/b = c/d に対応し、2つの直線が 平行である場合に対応する。


行列の対角化

対角化の具体例

ここではベクトルを幾何的なベクトルとして取ってみる。 つまり、

e1=ex=(10)
e2=ey=(01)

としてみる。このとき一般的な2*2行列は、あるベクトルを 別のベクトルに移す働きをするということが出来る。 例えば、 行列

(abcd)

は、

e1=(a,c)
e2=(b,d)

の変更をする。

一般に多くの行列は、行列はもっともよい基底をとった場合、 対角化されてみえる。対角化とはどういうことかというと、

A=αiδij

の形で書かれる行列のことである。 ただし、ここでiの和を取ってはいけない。 ここでδijはクロネッカのデルタであるので、 この式は、対角化された行列は対角要素だけを持つ行列であることが わかる。つまり、ある行列はある基底をとることで 対角化されて見えるのである。

例えば

A=(1111)

のときを考えてみる。 この行列は ベクトル(1 1)を2倍の長さにし、 (1 -1)を長さ0のベクトルにする。 全てのベクトルはこれら2つのベクトルを用いて張ることが出来るので 全てのベクトルに対するAの動作が判ったことになる。 例えば、 (2 0) = (1 1) + (1 -1) を用いれば、 A(2 0) = A((1 1) + (1 -1)) = 2(1 1) + 0 (1 -1) = (2 2) となる。 また、 An (2 0) = 2n (1 1) = (2n 2n) となる。 つまり、e1,e2という行列を取ったときには その行列を互いに混ぜ合わせたり長さを変えたり更には向きを変えたりと 複雑なマッピングをしていたようにみえた行列が、非常に扱い易くなっている のである。このように行列が最も扱い易くなる ベクトルを探すことが、このセクションの主題である。

対角化の方法

固有値と固有ベクトル

行列Aについてあるベクトルxに対して

Ax=λx

が成り立つときこれを固有ベクトルと呼ぶ。 またλを固有値と呼ぶ。 これは先ほどでいうと、行列の動作をただの定数倍にしてしまうベクトルのことである。 このようなベクトルを見つけられると非常に都合が良い。

この方程式は実際に解くことが出来る。 値は、

(AλE)x=0

となる。 ここで、

λx=λEx

となることを用いた。 (Eは単位行列。) これは一見奇異に思えるかも知れないが、元々1次方程式が要素ごとの 連立方程式だったことをふまえて、要素ごとの記述に戻って 計算しても、同じ値が得られる。

さて、この方程式は常にx=0という解を持っている。 しかし、今必要なのはx = 0という解ではなく、0でないxである。 ここで、仮に AλE が、

det(AλE)0

を満たすとすると、この行列はただ1つの解を持ち、 その解はx=0である。 これはこのときには AλEが逆行列を持つことからすぐにわかる。

よって、仮に行列Aがある0でない固有ベクトルを持つとすれば、 すくなくともdet(AλE)=0 とならなければならない。 いいかえれば、そのことの必要条件は det(AλE)=0 となる。 この方程式を固有方程式と呼ぶ。この方程式は λに関するn次の代数方程式であり、 nが大きいときには一般にとじた形で解けるとは限らない。 ただし、この式は必ず複素数の範囲でn個の解を持つことが 知られている。

固有方程式の計算例

固有方程式には様々な場合がある。 例として、全ての解が単根であるときや、いくつかの重根があるときが ある。 一般に全ての解が単根であるときには、それぞれの固有値に対応する 固有ベクトルがただ1つずつ存在し、元の行列は完全に対角化 されることが知られている。このとき対角成分に 現われる数は、その固有ベクトルに対応する固有値である。 また、一般に

AA=AA

を満たす行列は対角化されることが知られている。 重要な例としてユニタリ行列、エルミート行列、直交行列、対称行列などは 対角化可能である。実際物理などででてくるのは多くがこの場合であり、 特にエルミート行列の対角化は、量子力学の定式化において 重要な位置を占める。


いくつかの重根があるときには、行列は必ずしも対角化されるとは限らない。 例えば、

(1001)

は対角化可能である、というより既に対角化されている。 しかし、

(1101)

のような行列を対角化することは出来ない。 このような場合には一般にジョルダン標準型と呼ばれる 最も簡単な形に帰着させることが慣習的になっている。 ジョルダン標準型についてはおそらく数学の線形代数で 扱われるが、後にも少し扱う。 上の対角化できない行列は実際には既にジョルダン標準型の形になっている。

ここでは典型的な場合をいくつか解析してみる。 例えば、

A=(1111)

では、 固有方程式は

(λ1)21=0
λ=0,2

となる。 ここでこの固有方程式は全ての根が単根であるので、 これらの固有値にはそれぞれ1つずつの固有ベクトルが対応し、 それらによって行列が対角化されることが期待される。 実際、固有ベクトルが2本あるなら、その方向に関しては その行列が良い振舞いをするという方向が2本分かっていることになり、 そして、ここでは2次元のベクトルを考えているので、 これらの2本だけで作り得る全てのベクトルを作ることが出来るので、 元の行列が全てのベクトルについて良い振舞いをすることはある意味で 当然であると思われる。

さて、得られた固有値を もともとの式

(AλE)x=0

または、

Ax=λx

に代入することで固有ベクトルを求められる。 この操作は少しトリッキーに思えるかも知れないが、 こういうものだと思ってもらいたい。

ここでは、 λ=0に対して、上の方程式は

x1+x2=0

となる。2つの方程式が同じ方程式になることに注意。 これは、このλに対して AλEの行列式が0になることからの帰結と見ることが 出来る。

この条件を満たすベクトルは全てこの固有値に関する固有ベクトルとなる。 ベクトルの長さは自由に選んで良い。 例えば、おそらく最も簡明なのは

(11)

であり、これはλ=0に関する 固有ベクトルとなる。 実際には、ベクトルの長さを1にするために規格化を行ない、

12(11)

としたものもよく用いられる。

λ=2 に対しては、例えば

(11)

が得られる。 これでこの行列は全てのベクトルに対して良い振舞いを することが出来ることが分かった。


対角化が出来ない場合

先ほども述べた通り、 対角化は全ての行列について出来るとは限らない。 例えば、

(1001)

は対角化可能であるが、

(1101)

は対角化不可能である。 問題は、 固有値λが重解を持ったとき 固有ベクトルの張るベクトルの次元が 充分な自由度を持たないことがありうるということにある。 この問題では、固有ベクトルをきめる 方程式は、x2=0に帰着するが、これを満たすベクトルは (a 0) (aは任意の定数)であり、1次元でしか無い。 そのため、固有ベクトルが充分な数だけとれないということになっている。 このような場合は対角化は原理的に不可能なのである。 このときには、代わりにジョルダン標準型という形式が使われることが 多い。

2次形式

ここでは行列の対角化の応用として、2次形式の計算を扱う。 実際の計算では2次式の計算を扱うことが良くある。 例えば、2次元の放物線型ポテンシャルを考えるとき、ある方向を取ることで 放物線が非常に簡単に見えることがある。そのようなことのために 行列の対角化の計算が使われるのである。

一般にn*n個の文字x1,xnを用いて書かれる2次式は、

txAx

の形で書ける。ただし、A,xともに実数しか取り得ないものとする。 ここで、便宜上Aは対称な行列とする。 例えば、 x2+xy+y2 に対しては、

A=(11/21/21)

と選べばよい。このように、うまく数値を選ぶことで、2次形式の 行列は必ず対称に選べる。

対称行列の対角化を用いると、 ある直交行列Oを用いて、

txAx=txOtBOx

と書ける。ここでBは対角行列である。 Ox = y と定義することで、

txAx=i=1nλiyi2

が得られる。 右辺の形を2次形式の標準型と呼ぶ。


例えば、 2つの2次形式 x2y2 と、2xyは、同一の標準型をもつ。 直交行列Oは、

(cosπ/4sinπ/4sinπ/4cosπ/4)

また、 x2y2=1 のグラフは、 2xy = 1 のグラフを π/4回転させてみたものに 等しいこともこれに対応する。 結局2xyを見るときにはグラフを傾けてみるのが分かりやすく解析する のに良い方法であり、そのよい方法は、実は行列の対角化と対応していた ということである。