線形代数(16)

≪行列式の計算≫

それでは、実際に行列式はどのように計算するのでしょうか?

  ( いま、n 行 n 列の n 次の正方行列の行列式を

|A|n
と表記することもある。)
例えば、教科書的定義に基づいて、|A|n を、n! 個の項で表わすこともできる。
ここで、|A|3 を具体的に求めてみよう。
(i) 「サラスの方法」

A= 3 5 4 2 1 3 1 0 2 (1)  とすると、  detA=  3・1・2+5・3・1+4・0・2   ―(4・1・1+5・2・2+3・0・3) = ⁡(6+15+0⁡) -(4+20+0⁡) =-3  と計算することができる。 
ところで、(1)式の行列式はつぎのようにも計算することができる。
(ii) 「余因子」を用いる

3 5 4 2 1 3 1 0 2 =3· 1 3 0 2 -2· 5 4 0 2 +1· 5 4 1 3 = 3·2-2·10 +1·11 =-3  と計算することもできる。 
また、(1)式の行列式はつぎのようにも計算することができる。
(iii) 「基本変形」を用いる(itはt行目)

3 5 4 2 1 3 1 0 2 = 1 4 1 2 1 3 1 0 2 (i1-i2) = 1 4 1 0 -7 1 0 -4 1 (i2-i1・2,i3-i1) = -7 1 -4 1 = -7-(-4)=-3


前回、行列式とは「符号つきの面積を対応させる関数」であり、このような関数は (イ),(ロ),(ハ)という三つの性質
(イ) 多重線形性: a1 ,a1' ,a2 ,a2' R2  , c R に対して、 つぎが成り立つ。 fa1 +a1' a2 = fa1 a2+ fa1' a2 fc·a1 a2= c·fa1 a2 fa1 a2+a2' = fa1 a2+ fa1 a2' fa1 c·a2= c·fa1 a2
(ロ) 歪対称性: a1 ,a2 R2 に対して、 つぎが成り立つ。 fa1 a2=- fa2 a1 (fa1 a1=0)
(ハ) 規格化条件:
e1= 1 0 ,  e2= 0 1  に対して、 つぎが成り立つ。 fe1 e2=1

で一意的に特徴づけられる、ということを見てきました。

そこで、実際に計算するにあたって、特に重要なことは、行列式の特徴である、(イ),(ロ)の性質を、しっかり理解することです。
いま、

A= a b c d ,  A'= 1 0 0 0 a b 0 c d  とすると detA'= 1·a·d+ 0·b·0+ 0·0·c -1·c·b -0·0·d -0·a·0 = ad-bc detA= ad-bc  したがって、 detA'=detA 1 0 0 0 a b 0 c d 3= a b c d 2 (2) すると、 a b c d という行列を分断して埋め込む、 0 a b 1 0 0 0 c d  が、 0 a b 1 0 0 0 c d 3=- a b c d 2 (3) となることも分かる。
これが、「サイズの大きな行列の行列式の計算」を「サイズがより小さな行列の行列式の計算」に帰着するための基本的な考え方です。 すると、教科書的な行列式の定義式は全く使わずに, 機械的に行列式の計算を進めることができる。
そこで、実際に、どのようにして行列式の計算が進むのかということを 3行3列の場合で見てみよう。

いま、3行3列の行列 A を A= a b c d e f g h i 行列 A の列ベクトルを、それぞれ、 a1= a d g  ,  a2= b e h  ,  a3= c f i と表わすことにする。すると、例えば、 a1R3 は a d g = a· 1 0 0 + d· 0 1 0 + g· 0 0 1 と分解して表わせることに注意して、 (イ)の「多重線形性」という性質を用いると detA= a b c d e f g h i 3 = a· 1 b c 0 e f 0 h i 3+ d· 0 b c 1 e f 0 h i 3+ g· 0 b c 0 e f 1 h i 3 (4)   となることが分かる。
そこで、(4)式の右辺第一項に注目すると、そこに現われる a2R3

b e h = b· 1 0 0 + 0 e h

と分解して表わせることに注意して、a2 に関する線型性を用いると、

1 b c 0 e f 0 h i 3 = b· 1 1 c 0 0 f 0 0 i 3+ 1 0 c 0 e f 0 h i 3 (5)

ところで、(5)式の右辺第一項は、(ロ)の「歪対称性」という性質から、0になることが分かるから、

1 b c 0 e f 0 h i 3 = 1 0 c 0 e f 0 h i 3 (6)

となることが分かる。そこで、さらに、a3R3

c f i = c· 1 0 0 + 0 f i

と分解して、(6)式の右辺に同様の操作を行うと

1 0 c 0 e f 0 h i 3= c· 1 0 1 0 e 0 0 h 0 3+ 1 0 0 0 e f 0 h i 3 = 1 0 0 0 e f 0 h i 3 (7)

したがって、(4)式の右辺第一項に現われる行列式は(6),(7)より

1 b c 0 e f 0 h i 3 = 1 0 0 0 e f 0 h i 3 (8)

というように書き直せる、ということが分かる。さらに、第二項、第三項についても

第二項 b e h = e· 0 1 0 + b 0 h c f i = f· 0 1 0 + c 0 i 第三項 b e h = h· 0 0 1 + b e 0 c f i = i· 0 0 1 + c f 0

と分解して、同様の操作を行うことで、

0 b c 1 e f 0 h i 3= 0 b c 1 0 0 0 h i 3 ,  0 b c 0 e f 1 h i 3= 0 b c 0 e f 1 0 0 3 (9)

となることが分かる。

したがって、det A は(4),(8),(9)式より

detA= a b c d e f g h i 3 = a· 1 0 0 0 e f 0 h i 3+ d· 0 b c 1 0 0 0 h i 3+ g· 0 b c 0 e f 1 0 0 3

というように、書き直せることが分かる。
そこで、さらに、(2),(3)式等の「基本的な原理」を適用すると、結局、

detA= a b c d e f g h i 3 = a· e f h i 2- d· b c h i 2+ g· b c e f 2 (10)

という式が得られる。
これが、具体的な計算例で行なった計算(ii)の「根拠」です。

ここでは、行列 A の一列目の列ベクトルに注目して、「一列目に関する行列式の展開式」を導出したが、同様の展開は, 他の列の列ベクトルに対しても行なうことができる。さらに、行列 A の n 個の行ベクトルに注目して、行ベクトルに対して、同様の考察を行なうことで、「行に関する行列式の展開式」を考えることもできる。

ところで、行列は、
〇 行(列)に関する基本変形
(a)ある二つの行(列)を入れ替える
(b)ある行(列)に別な行(列)の何倍かを足す
(c)ある行(列)を何倍かする(ただし、0倍することは許さないものとする)
という三種類の操作を施すことが許される、のであった。
それでは、行列に「基本変形」を施すことで、行列式はどのように変化するだろうか?
(a),(b),(c) というそれぞれのタイプの基本変形に対応した基本行列 E(a),E(b),E(c) は、m,nR として、例えば、

E(a)= 0 1 0 1 0 0 0 0 1  ,   E(b)= 1 0 m 0 1 0 0 0 1  ,   E(c)= 1 0 0 0 n 0 0 0 1

というような形で与えられるわけだが、これらの行列の行列式を計算してみると

detE(a)= 0 1 0 1 0 0 0 0 1  (j1  j2) =- 1 0 0 0 1 0 0 0 1 =-1 detE(b)= 1 0 m 0 1 0 0 0 1 = 1 0 0 1 0 0 m· 1 0 0 + 0 0 1 = m· 1 0 1 0 1 0 0 0 0 + 1 0 0 0 1 0 0 0 1 = m·0+1 =1 detE(c)= 1 0 0 0 n 0 0 0 1 = 1 0 0 n· 0 1 0 0 0 1 = n· 1 0 0 0 1 0 0 0 1 =n

行列式の積は

det(AB)= det(BA)= detA·detB  が成り立つから det(AE(a))= det(E(a)A)= -detA det(AE(b))= det(E(b)A)= detA det(AE(c))= det(E(c)A)= n·detA  となることが分かる。

特に、(b) のタイプの基本変形は行列式の値を変えないことが分かるから、このことを用いると、例えば(8)式も

1 b c 0 e f 0 h i = 1 0 c 0 e f 0 h i  (2列目+1列目・(-b)) = 1 0 0 0 e f 0 h i  (3列目+1列目・(-c))

というように簡単に導くことができる。

実際に行列式を計算するときには、いきなり、ある行やある列に関する展開を行なうのではなく、上のような基本変形を行や列に施して、ある行やある列になるべくたくさん 0 が出て来るような形に変形してから、その行やその列に関する展開を行なうと、計算が見やすくなるし、計算間違いも少なくなるかもしれません。