線形代数・補論(1)

≪行列の基本変形とはなにか、行列語を理解する≫

いま、未知数が n 個であるような n 個の一次式を連立して得られる連立方程式

a11x1+ a12x2+⋯+ a1nxn =b1 a21x1+ a22x2+⋯+ a2nxn =b2 an1x1+ an2x2+⋯+ annxn =bn  行列の記法で表わすと a11 a12 a1n a21 a22 a2n an1 an2 ann x1 x2 xn = b1 b2 bn A:= a11 a12 a1n a21 a22 a2n an1 an2 ann , x:= x1 x2 xn , b:= b1 b2 bn  とすると、 与えられた方程式は Ax=b (1)  と表される。

 ここで、detA0 とすると、逆行列 A-1 が存在するから、(1)式の両辺に左から A-1 を掛けると

A-1Ax =x =A-1b (2)

ところで、行列 A の逆行列 A-1は、 「行列式(3)行列式の余因子」でみたように余因子行列を用いて、

【逆行列の公式 (n 行 n 列の場合) 】⁡(detA0⁡) A-1= 1detA A~11 A~21 A~n1 A~12 A~22 A~n2 A~1n A~2n A~nn (3)

というように、具体的な形で与えられる。一般に、逆行列に対する (3) 式の公式を Cramer の公式と呼ぶ。

すると(2)式は

x1 x2 xn = 1detA· A~11 A~21 A~n1 A~12 A~22 A~n2 A~1n A~2n A~nn b1 b2 bn

したがって、解 x の第 j 成分 xj

xj= 1detA· A~1jb1+ A~2jb2+⋯+ A~njbn

によって与えられるが、この式の()の中は、行列 A の第 j 列の 余因子展開

detA= A~1ja1j+ A~2ja2j+⋯+ A~njanj

に現われる aij を、各 i=1,2,3,⋯,n について bi に置き換えたものに他ならない。そこで

Aj:= a1,1 a1, j-1 b1 a1, j+1 a1, n a2,1 a2, j-1 b2 a2, j+1 a2, n  ⋮  ⋮  ⋮  ⋮  ⋮ an,1 an, j-1 bn an, j+1 an, n ⁡(j=1,2,3,⋯,n⁡)

とすると、一意的な解 x の各成分 xj

xj= detAj detA

で与えられる。この解の公式を Cramerの公式と呼ぶこともある。

ところで、Cramerの公式は、A の逆行列 A-1 を A の余因子行列を用いて具体的に与えてくれるが、行列のサイズが小さくない場合には, 実際に逆行列を求める上ではあまり実用的ではない。その理由は, あまりにたくさん行列式を計算しなければならないという点にある。
それでは、どれぐらいの計算量になるだろうか?取りあえず乗除法のみを問題にしてその数を計算してみよう。
教科書的定義に従うと
detA= σ ∈Sn Sgnσ a1σ(1) a2σ(2) anσ(n)  より、 detA は n!  個の項があり、   それぞれの項が、n-1 回の掛け算を行うことになる。   乗除の回数 detA に関して n!n-1 回  各余因子に関して n-1!n-2 回  全余因子に関して n2n-1!n-2 回  最後の割り算 n2 回  したがって、全乗除の回数は、 n!n-1+ n2n-1!n-2+ n2 = n!n-1+ n·n!n-2+ n2 = n!n2-n-1+ n2 n=339 n=4280 n が増えると、飛躍的に増大する。

一方、基本変形を用いて逆行列を計算するガウスの消去法(掃き出し法)を復習を兼ねて計算してみよう。
【ガウスの消去法】
行列に対して掃き出し法を行う為には、行に関する基本変形を行列に可能な限り繰り返し行って行列の左下部分の成分を全て 0 にする
『例題』
先ず、拡大係数行列を作る。
2134 3-45-2 1213 -4334 1000 0100 0010 0001 [前進消去]  基本とする行を第1行にもってくる ⁡(r1r3 第1行と第3行を交換⁡) 1213 3-45-2 2134 -4334 0010 0100 1000 0001  「第一段階」 1213 0-102-11 0-31-2 011716 0010 01-30 10-20 0041 r2+r1·(-3) r3+r1·(-2) r4+r1·(4)  「第二段階」 1213 0-102-11 004101310 0092103910 0010 01-30 1-310-11100 011107101 r3+r2·(-3/10) r4+r2·(11/10)  「第三段階」 1213 0-102-11 004101310 000-26 0010 01-30 1-310-11100 -238261 r4+r3·(-23) [後退代入]  「第四段階」 1213 0-102-11 004101310 0001 0010 01-30 1-310-11100 2326-826-2626-126 r4·(-1/26)  「第五段階」 1213 0-102-11 004100 0001 0010 01-30 -320110210120 2326-826-1-126 r3+r4·(-13/10)  「第六段階」 1213 0-102-11 0010 0001 0010 01-30 -38142418 2326-826-1-126 r3·(10/4) 以下同様に 1213 0100 0010 0001 0010 -1091041552327104 -38142418 2326-826-1-126 r2+r4·(11) r2+r3·(-2) さらに-10 で割る 以下同様に 1000 0100 0010 0001 -1910455212-15104 -1091041552327104 -38142418 2326-826-1-126 r1+r4·(-3) r1+r3·(-1) r1+r2·(-2)

やっと、たどり着きました。
 さて、どれだけの計算量になるでしょうか?

[前進消去]の第一段階では、未知数 n に対して拡大係数行列で、2n 個の係数に掛け算をする。そして、基本とする行以外のすべての行に行なうから、
第一段階全部で 2n(n-1)
第二段階では、行と未知数がそれぞれ一つ減るから
  第二段階  (2n-1)(n-2)
第三段階では、同様に (2n-2)(n-3)
よって、全部では、
2nn-1+ 2n-1 n-2+ 2n-2 n-3+⋯+ n+2·1 これは、次のように表わせるから = k=1 n-1 {n+1+k}k = n+1 k=1 n-1 k+ k=1 n-1 k2 = n+1 nn-1 2 + 16 nn-1 2n-1 = 16n 5n2-3n-2 また、後退代入では、n 組の n 元連立一次方程式を解くことになるから、 n1+2+3+⋯+n = n2n+1 2 したがって、掃き出し法での乗除回数は、 16n 5n2-3n-2 + n2n+1 2 = n8n2-26

これらの乗除回数を比較すると

Cramern!n2-n-1+ n2 Gauss13n4n2-1 n Cramer Gauss 2 6 10 3 39 35 4 280 84 5 2305 165 6 20916 286

この比較から分かるように、Cramer の公式は、実際に逆行列を求める上ではあまり実用的ではないということが分かる。具体的な数値が与えられているときの逆行列の計算には、基本変形を用いて逆行列を計算する方がずっと効率がよい。しかし、Cramer の公式は、逆行列を成分で形式的に表現できる、ということが重要であって、それによって、逆行列に対する理解をより深めることができることは、「行列式(3)余因子」でみた。