線形代数(1)

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

線形代数を学び始めて最初の<躓きの石>がおそらく「行列の基本変形」であろう。
「基本変形とはなにか」・・・行列の基本について考えてみよう。
基本変形とは、与えられた行列の行や列を一定の手続きで変形していく操作で、具体的には

〇 行に関する基本変形
(a)ある二つの行を入れ替える
(b)ある行に別な行の何倍かを足す
(c)ある行を何倍かする(ただし、0倍することは許さないものとする)

という三種類の操作を「行に関する基本変形」と呼び、

〇 列に関する基本変形
(a)ある二つの列を入れ替える
(b)ある列に別な列の何倍かを足す
(c)ある列を何倍かする(ただし、0倍することは許さないものとする)

という三種類の操作を「列に関する基本変形」と呼ぶ。

ここで大事なことは、単にこうした基本変形の手続きを覚えるのではなく、基本変形とは「どういうことを行なっているのか」ということを原理的なところから理解することである。

基本変形とは、与えられた行列の行や列に対して、上の(a)、(b)、(c) という三種類の操作を施すことなのだが、基本変形に関して最初に理解すべき大切な点は、「これこれの基本変形を施しなさい」という命令は「行列語」で出さなければいけないということ。 すなわち、(a)、(b)、(c) という三種類の命令は「日本語」で書かれているわけだが、行列は「日本語」を理解しないから行列にもこれらの命令を理解してもらえるよう に「行列語」で命令を出す必要があるということである。

考え方の本質は、行列が 2行2列 の場合にすべて含まれているから、話を具体的にするために、ここでは 2行2列の行列の場合で考察してみよう。
いま 2行 2列 の行列 A= a b c d に 
E(a)= 0 1 1 0  ……(1)
という行列を左から掛けてみる。すると
E(a)A= 0 1 1 0 a b c d = c d a b  ……(2)
となるが、このことは「E(a)という行列を左から掛け算する」ということは「行列 A の一行目と二行目を入れ替える」ことであるというように読み取ることができる。
実際、(2) 式の行列の掛け算がどのように実行されるのかということを反省してみると、E(a)という行列の一行目である
0 1
という行列が、
0· a b +1· c d = c d
というように、「 A という行列の一行目の 0 倍と二行目の 1 倍を足した行列
c d
を E(a)A という行列の一行目として書きなさい」という命令に対応、全く同様にE(a)という行列の二行目である
1 0
という行列が、
1· a b +0· c d = a b
というように、「 A という行列の一行目の 1 倍と二行目の 0 倍を足した行列
a b
を E(a)A という行列の二行目として書きなさい」という命令に対応していることが分かる。

次に
E(b)= 1 m 0 1  ……(3)
という行列を左から掛けてみる。すると
E(b)A= 1 m 0 1 a b c d = a+mc b+md c d  ……(4)
となるが、このことは「E(b)という行列を左から掛け算する」ということは「行列 A の一行目に二行目のm 倍を足す」ことであるというように読み取ることができる。
実際、(4) 式の行列の掛け算がどのように実行されるのかということを反省してみると、E(b)という行列の一行目である
1 m
という行列が、
1· a b +m· c d = a+mc b+md
というように、「 A という行列の一行目の 1 倍と二行目の m 倍を足した行列
a+mc b+md
を E(b)A という行列の一行目として書きなさい」という命令に対応、全く同様にE(b)という行列の二行目である
0 1
という行列が、
0· a b +1· c d = c d
というように、「 A という行列の一行目の 0 倍と二行目の 1 倍を足した行列
c d
を E(b)A という行列の二行目として書きなさい」という命令に対応していることが分かる。

さらに n0として
E(c)= n 0 0 1  ……(5)
という行列を左から掛けてみる。すると
E(c)A= n 0 0 1 a b c d = na nb c d  ……(6)
となるが、このことは「E(c)という行列を左から掛け算する」ということは「行列 A の一行目を n 倍する」ことであるというように読み取ることができる。
実際、(6) 式の行列の掛け算がどのように実行されるのかということを反省してみると、E(c)という行列の一行目である
n 0
という行列が、
n· a b +0· c d = na nb
というように、「 A という行列の一行目の n 倍と二行目の 0倍を足した行列
na nb
を E(c)A という行列の一行目として書きなさい」という命令に対応、全く同様にE(c)という行列の二行目である
0 1
という行列が、
0· a b +1· c d = c d
というように、「 A という行列の一行目の 0 倍と二行目の 1 倍を足した行列
c d
を E(c)A という行列の二行目として書きなさい」という命令に対応していることが分かる。

以上みたように、「行」に関する(a),(b),(c)という三種類の基本変形は、それぞれ (1)式、(3)式,(5)式で与えられる三種類の行列 E(a),E(b),E(c) を「左から掛け算する」ことによって実現されているということが分かる. また、それぞれの行列 E(*) の「一行目」が「 E(*)A という行列の一行目に何を書くのか」という命令に, E(*) の「二行目」が「 E(*)A という行列の二行目に何を書くのか」という命令に対応していることも分かる。

そこで全く同様に、これらの行列を A の「右から掛け算」してみると, それぞれ
AE(a)= a b c d 0 1 1 0 = b a d c
AE(b)= a b c d 1 m 0 1 = a ma+b c mc+d
AE(c)= a b c d n 0 0 1 = na b nc d
すなわち、「列」に関する(a),(b),(c)という三種類の基本変形は、それぞれ (1)式、(3)式,(5)式で与えられる三種類の行列 E(a),E(b),E(c)を「右から掛け算する」ことによって実現されているということが分かる. また、それぞれの行列 E(*) の「一列目」が「 AE(*) という行列の一列目に何を書くのか」という命令に, E(*) の「二列目」が「 AE(*) という行列の二列目に何を書くのか」という命令に対応していることも分かる。
このように、基本変形を実現するような行列 E(a),E(b),E(c) のことを、基本行列と呼ぶ。 繰り返しになるが、大切なことは「行列A を基本変形する」ということは、こうした特別な形をした「基本行列を 行列A の右や左から掛け算する」ことである ということを最初にしっかりと理解することである。

そして, 次に理解すべき大切な点は、(a)、(b)、(c) という三種類の命令は「取り消しのきく命令」であり、また、命令の意味を考えることで「取り消しの命令」も簡単に出せるようなものであるということ。すなわち、行列に対して間違った命令を出してしまったときに、その間違いを取り消すような命令を「行列語」で即座に出せるということである。
例えば,「行列A の一行目と二行目をひっくり返す」という命令を間違って出してしまったとする。 このとき命令の意味を考えてみると、もう一度,「一行目と二行目をひっくり返す」という命令を出すことによって、間違った命令を取り消すことができるはずである。すなわち
E(a)E(a)= 0 1 1 0 0 1 1 0 = 1 0 0 1 =I
となることから
E(a)(E(a)A)=(E(a)E(a))A=IA=A
というように、E(a) を左から掛け算することにより、この間違った命令は取り消せることが分かる。
全く同様に、「行列 A の一行目に二行目の m 倍を足す」という命令を間違って出してしまったとする。このとき命令の意味を考えてみると、今度は,「一行目に二行目の (−m)倍を足す」という命令を出すことで、一行目に間違って足されてしまった「二行目の m 倍」を打ち消すことにすれば, この間違った命令を取り消すことができるはずであることが分かる。 さらに n0として 「行列 A の一列目を n 倍する」という命令を間違って出してしまったとする。このとき命令の意味を考えてみると, この場合には, さらに「一列目を 1n倍する」という命令を出すことによって、間違った命令を取り消すことができるはずであることが分かる。(ここでn=0とすると間違った命令を取り消すことができないことになる)
すなわち、E(a)、E(b)、E(c) という基本行列は、それぞれ、逆行列を持ち、対応する基本変形の意味を考えることにより、
0 1 1 0 -1= 0 1 1 0
1 m 0 1 -1= 1 -m 0 1
n 0 0 1 -1= 1n 0 0 1
というように簡単に逆行列を求められること。また、それぞれのタイプの基本行列の逆行列は同じタイプの基本行列で与えられるということも分かる。

以上みてきたように「基本変形」は、「行列語」で命令が出せるということ、すなわち、対応する「基本行列」が書けるということが大前提としてあるわけだが、その上で 「間違った命令が取り消せる」、それも 「変形の意味を考えることで、取り消しの命令(逆行列)が簡単に書き下せる」ということを特徴としている。その意味で、例えば「行の変形」として
2 1 3 1
のように,「一行目を 2 倍してから二行目を足し、さらに、二行目に一行目の 3 倍を足す」という操作を「ひとつの基本変形」と呼んでも全く構わないわけだが、 余り複雑な命令を考えてもかえって頭がこんがらがるだけだし, 複雑な命令も簡単な命令を繰り返し出すことによって実現することができるから、一般に「基本変形」として、 (a)、(b)、(c) という三つのタイプの変形だけを採用しているのである。

余談
ここまで「基本変形」を通して行列を左から、あるいは右から掛け算することはどういうことなのかを見てきました。そこで次の二つの計算をよもや間違うことはないとおもいますが。
a b c d e f = ad ae af bd be bf cd ce cf
a b c d e f = ad+be+cf
また、行列の積はつぎのように計算するのでした。
1 0 1 3 2 0 1 1 2 0 3 1 2 0 1 0 2 0
= 1·0+0·2+1·0 1·3+0·0+1·2 1·1+0·1+1·0 3·0+2·2+0·0 3·3+2·0+0·2 3·1+2·1+0·0 1·0+1·2+2·0 1·3+1·0+2·2 1·1+1·1+2·0
= 0 5 1 4 9 5 2 7 2
行列の積の計算を行うには、単純ではあるものの多くの計算を繰り返さなければならない。例えば 3 次正方行列どうしの積を計算するには、一つの成分を求めるのに掛け算を 3 回、足し算を 2 回、合わせて 5回の計算を行う。したがって、すべての成分を求めるには計 45 回の計算が必要になる. このうち一つでも計算を誤れば正しい結果は得られない。
そこで、暗算の苦手な人のために成分計算はあきらめて、上記の計算を「行の変形」と思って計算してみよう。

まず一行目(1 0 1)
1*(0 3 1)+0*(2 0 1)+1*(0 2 0)
=(0 3 1)+(0 2 0)=(0 5 1)
二行目(3 2 0)
3*(0 3 1)+2*(2 0 1)+0*(0 2 0)
=(0 9 3)+(4 0 2)=(4 9 5)
三行目(1 1 2)
1*(0 3 1)+1*(2 0 1)+2*(0 2 0)
=(0 3 1)+(2 0 1)+(0 4 0)=(2 7 2)

今度は上記の計算を「列の変形」と思って計算してみよう。
まず一列目020
0· 1 3 1 + 2· 0 2 1 + 0· 1 0 2 = 0 4 2
二列目302
3· 1 3 1 + 0· 0 2 1 + 2· 1 0 2 = 5 9 7
三列目110
1· 1 3 1 + 1· 0 2 1 + 0· 1 0 2 = 1 5 2
計算の仕方はいろいろあると思いますが。
ところで、
定義 5.1.1. n 次正方行列 A が可逆 (invertible) である (あるいは正則 (non-singular, regular) であるともいう) とは, AB = E = BA を満たす n 次正方行列 B が存在することである. このとき, B を A の逆行列 (inverse) という
B を A の逆行列だとすると AB=BA=E である! という。 すなわち行列 A を「列」変形する行列と「行」変形する行列が、行列 A の「行」と「列」が全然違うのに 同じ行列を掛けると単位行列になる?という、にわかには信じ難いことですね。