II Mapleで線形代数(No1)

 II Maple で線形代数を
線形代数は数学全般にわたって、欠かせない重要な基礎概念である。手計算や Maple
での計算実験をできるだけ沢山行って、一般性を推論する能力を養って欲しい。本稿が
何らかのお役に立てたら著者の喜びである。
立正大学名誉教授 守谷 兩時 第1章 行列
§1 行列
1.1 行列の基本演算
m ⋅n 個の数 ai, j ∈ R or C (i = 1,2,!, m , j = 1,2,!n) を [ ] または ( ) の中に縦に m ,横に
n 並べたものを (m,n) 型の行列(matrix)という。これを A とすると、 次のようにかける。
⎛
⎜⎜
⎜⎜
⎜⎜
⎜⎜
A = ⎜⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎜⎝
特に ai, j
a1,1
a1,2
! a1, j
a2,1
a2,2
! a2, j
"
ai,1
"
ai,2
"
"
! ai, j
"
"
"
"
! am, j
am,1 am,2
! a1,n ⎞⎟⎟
⎟⎟
! a2,n ⎟⎟
⎟⎟
"
" ⎟⎟⎟
⎟
! ai,n ⎟⎟⎟
⎟⎟
"
" ⎟⎟
⎟
! am,n ⎟⎟⎟⎠
∈ R のとき、 A を実行列、 ai, j ∈ C のとき、複素行列という。
(ai,1 ,ai,2 !,ai, j !,ai,n )
を行列 A の第 i 行(the
(i = 1,2,!, m)
i th row)という。
⎛
⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎜⎜⎝
a1, j ⎞⎟⎟
⎟⎟
a2, j ⎟⎟
⎟⎟
! ⎟⎟⎟
⎟
ai, j ⎟⎟⎟
⎟⎟
! ⎟⎟
⎟
am, j ⎟⎟⎟⎠
( j = 1,2,!n)
を行列 A の第 j 列(the j th collume)という。そして、 ai, j を行列 A の (i, j) 成分(component)
という。 (m,n) 型の行列の集合を M (m,n : R) とか M (m,n : C) と表す。
A = (ai, j ) ∈ M (m,n : R) 、 A = (ai, j ) ∈ M (m,n : C) とか,単に A = (ai, j ) と略記する。
たとえば、
⎛ 2 −1
⎜
A = ⎜⎜
⎜⎝ 8 9
⎛ 1+ i 3−i
⎜⎜
4 ⎞⎟⎟
⎜
5 + 2i
⎟ ∈ M (2, 3 : R), B = ⎜⎜ 5
3 ⎟⎟⎠
⎜
⎜⎝ 1−i 6 + 7i
⎞⎟
⎟⎟
⎟⎟ ∈ M (3,2 : C)
⎟⎟
⎟⎠
さて、 A =
(ai, j ), B = (bi, j ) ∈ M (m,n; K )
( K = R or C ) について、
A = B とは ai, j = bi, j (i = 1,2,!, m , j = 1,2,!n) のときをいう。これを行列の相等という。
A + B = (ai, j + bi, j ) ∈ M (m,n; K ) と定め、これを行列の加法という。
α ∈ K, A = (ai, j ) ∈ M (m,n : K ) について、 αA = (αai, j ) ∈ M (m,n : K ) と定め、これを A
の α 倍という。この演算をスカラー乗法という。ここで、 α のことをスカラーという。
全ての成分が0である (m,n) 型の行列
⎛ 0 ! 0
⎜⎜
⎜⎜ " # "
⎜⎜
⎜⎝ 0 ! 0
⎞⎟
⎟⎟
⎟⎟ ∈ M (m,n : K )
⎟⎟
⎟⎠
を (m,n) 型の零行列という。 Om,n とかく。混乱の恐れがないときには単に O ともかく。
ここで、行列の入力について説明する。線形代数の計算をするには予め取り敢えず
with(linalg):
と入力しておかなければならない。これは線形代数に関するパッケージのロードを意味する。
(m,n) 型の行列は次のように行単位に入力する。
matrix(m,n,[a1.1 , a1,2 ,!, a1,n , a2.1 , a2,2 ,!, a2,n ,!, am,1 , am,2 ,!, am,n ]);
たとえば、
⎛
⎜⎜
⎜
A = ⎜⎜⎜
⎜⎜
⎜⎜
⎝
⎛
3 −1 5
8 4 ⎞⎟⎟
⎜⎜
⎟
⎜
−4 10 23 7 11 ⎟⎟
⎟⎟ 、 B = ⎜⎜⎜
9
5
7 −3 2 ⎟⎟
⎜⎜
⎟
⎜⎜
2
4 −6 4 5 ⎟⎠
⎝
9
10
8
−1
1 −5 21 9 ⎞⎟⎟
⎟
4 2
5 11 ⎟⎟
⎟
3 4 −13 12 ⎟⎟⎟
⎟
4 −5
8
9 ⎟⎠
を入力してみよう。パレットからよりもエディターを使って入力する方が楽に正確にできる。
ちなみに、筆者はエディターとして Word を使用した。
A:=matrix(4,5,[
3,-1,5,8,4,
-4,10,23,7,11,
9,5,7,-3,2,
2,4,-6,4,5])
と打っておいて、Mac の場合は delete キーで、Win のときは Back space をつかって、
A:=matrix(4,5,[3,-1,5,8,4,-4,10,23,7,11,9,5,7,-3,2,2,4,-6,4,5]);
を完成する。これでミスなく素早く入力できる。これを Maple のプロンプト(>)のあとにコピー・
ペーストすればよい。そして確定キーを打てば得られる。
Om,n は matrix(m,n,0) と入力すればよい。
matrix(4,5,0)
------ O4,5 の入力--------
と出力される。B も同様に入力しておこう。Maple で入力した部分をコピー・ペーストでエデ
ィターに戻すこともできる。それを保存しておけば何回でも計算を実行してみれる。
B:=matrix(4,5,[9,1,-5,21,9,10,4,2,5,11,8,3,4,-13,12,-1,4,-5,8,9]);
A+B は evalm(A+B), αA は eval(alpha*A)と入力して得られる。
上であげた行列 A, B について、A+B、2A—3B を実際計算してみよう。
evalm(A+B)
evalm(2*A)+evalm(-3*B)=evalm(2*A-3*B);
単に、evalm(2*A-3*B) と入力してもよい。このときは左辺のうような表示は現れない。直に右
辺のみの表示となる。初学者には前者の方が目で追って確認しやすいだろう。
注意:一つの問題を解決するごとに Maple を起動し直すのがエラーを避けるためにのぞましい。
例題 1
⎛ 1 2 5 ⎞⎟
⎛
⎞
⎛
⎞
⎟⎟, B = ⎜⎜ 3 8 10 ⎟⎟⎟,C = ⎜⎜ 7 4 −3 ⎟⎟⎟
A = ⎜⎜⎜
⎜⎜⎝ 4 −7 6 ⎟⎠
⎜⎜⎝ 9 11 −5 ⎟⎠
⎜⎝ 4 −7 6 ⎟⎠
について、 A + B + C, 2A − 5B + 6C を計算せよ。
with(linalg):A:=matrix(2,3,[1,2,5,4,-7,6]):B:=matrix(2,3,[3,8,10,4,-7,6]):C:=matrix(2,3,[7,4,-3,
9,11,-5]):
evalm(A+B+C);
evalm(2*A)-evalm(5*B)+evalm(6*C)=evalm(2*A-5*B+6*C)
Maple で一般的な入力をやってみよう。
with(linalg):m:=5:n:=6:
A:=matrix(m,n,[seq(seq(a[i,j],j=1..n),i=1..m)]):B:=matrix(m,n,[seq(seq(b[i,j],j=1..n),i=1..m)]):
evalm(A);
evalm(A+B);
evalm(alpha*B);
%[4, 3]; ----下の注を参照(上の行列の(4,3)成分を出力してみた)-----
m:=’m’:n:=’n’:
--------- m,n の設定解除---------
注:行列 A の (i, j) 成分を出力したいときには、A[i,j]と入力する。
このように実験してみることができる。m,n の設定をかえると色々なサイズ(よこ、たて)の
行列を構成することができる。 複素行列 A =
(ai, j ) ∈ M (m,n : C) について、 A = (ai, j ) を A の共役(conjugate)行列という。
map(conjugate,A)と入力して得られる。次の例でみてみよう。
A:=matrix(2,4,[2-3*I,4+5*I,6-5*I,8-I,7+8*I,6-2*I,5-8*I,9+5*I]),
conjugate_of_A:=map(conjugate,A);
A = (ai, j ), B(bi, j ) ∈ M (m,n,C),α,β ∈ C について、 αA + βB = α⋅ A + β ⋅ B であることは明
らかである。
定理 1 A, B,C ∈ M (m,n : K ) について、
(I) 加法
(1)
(A + B)+ C = A + (B + C)
(2)
A+ B = B+C
(3)
A + Om,n = A
(4)
A + X = Om,n を満たす X ∈ M (m,n : K ) が存在する。これを A のマイナス元という。
(II)
スカラー乗法
A, B ∈ M (m,n : K ),α,β ∈ K について、
(1)
α(A + B) = αA + αB
(2)
(α + β)A = αA + αA
(3)
(αβ)A = α(βA)
(4)
1⋅ A = A
証明は明らかである。
次に A = (ai,k ) ∈ M (m,l : K ), B =
l
(bk, j ) ∈ M (l,n : K ) について、
ci, j = ∑ ai,k bk, j = ai,1b1, j + ai,2b2, j +!+ ai,l bl, j
k=1
(i = 1,2,!, m , j = 1,2,!n)
とする。 C =
(ci, j ) ∈ M (m,n : K ) を A と B の積といい、 A ⋅ B と表す。
A の第 i 行 ( ai,1 ai,2 ! ai,l
⎛ b
⎜⎜ 1, j
⎜⎜
⎜ b
) と B の第 j 列 ⎜⎜ 2, j
⎜⎜ !
⎜⎜
⎜⎝ bl, j
⎞⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟ で対応する成分の積を作りそれらの
⎟⎟
⎟⎟
⎟⎟⎠
和が ci, j である。 A の“よこ”サイズ、 B の“たて”サイズが等しいことが大事である。
例題2 (1)
⎛ a b
⎜⎜
⎜⎜ d e
⎝
(2)
⎛ x u
⎜⎜
⎜⎜ y v
⎜⎜
⎜⎝ z w
c
f
⎛
⎞
⎞⎟⎜⎜ x u ⎟⎟⎟ ⎛⎜ ax + by + cz au + bv + cw
⎟⎟⎜⎜ y v ⎟⎟ = ⎜⎜
⎟⎟⎠⎜⎜
⎟ ⎜ dx + ey + fz du + ev + fw
⎜⎝ z w ⎟⎟⎟⎠ ⎜⎝
⎞⎟
⎟⎟⎛⎜ a b
⎟⎟⎜
⎟⎟⎜⎜⎝ d e
⎟⎟⎠
c
f
⎛
⎞⎟ ⎜⎜ xa + ud
⎟⎟ = ⎜⎜ ya + vd
⎟⎟⎠ ⎜⎜⎜
⎜⎝ za + wd
⎞⎟
⎟⎟
⎟⎟
⎠
xc + uf ⎞⎟⎟
⎟
yb + ve yc + vf ⎟⎟⎟
⎟
zb + we zc + wf ⎟⎟⎟⎠
xb + ue
この例からも分かるように AB = BA は必ずしも成立しない。
Maple で AB を計算するには
multiply(A,B)
と入力する。また、複数個の行列の積 A ⋅ B ⋅C!M を計算するには、
multiply(A,B,C, ! ,M)
と入力する。
定理 2 A ∈ M (m,l : C), B ∈ M (l,n : C) について AB = A ⋅ B が成立する。
なぜならば、 ci, j
例題 3
l
l
k=1
k=1
= ∑ ai,k bk, j = ∑ ai,k ⋅bk, j より明らかである。
次の行列の計算をせよ。
(1)
with(linalg):
A := matrix(2, 3, [2, 0, 3, 4, -1, 1]); B := matrix(3, 4, [2, 0, -6, -1, 1, 5, 3, 1, 1, 2, 1, -1])
evalm(A)*evalm(B) = multiply(A, B)
(2)
A := matrix(2, 4, [4,2,5,3,3,0,11,8]); B := matrix(4, 3, [4,7,3,-7, 9, 0, 3,5,7, -1,1,4]):
evalm(A)*evalm(B) = multiply(A,B)
(3)
A:=matrix(4,3,[3,5,-2,5,-8,9,-6,9,5,2,5,7]):B:=matrix(3,4,[-1,5,8,9,7,3,4,-5,5,6,3,-8]):
evalm(A)*evalm(B) = multiply(A, B)
⎛ 3+ i
4 −i
⎜⎜
⎜
(4) A = ⎜ 5 + 2i 2 + 3i
⎜⎜
⎜⎝ 2 − 5i 9 + 2i
⎞⎟
⎛
⎟⎟
⎟⎟, B = ⎜⎜ −2 + i 5 + 2i 4 + i
⎜⎜ 6 + 7i 1−i 2 + 3i
⎟⎟
⎝
⎟⎠
⎞⎟
⎟⎟ について、 AB = A ⋅ B を確か ⎟⎟⎠
めてみよ。
with(linalg):A:=matrix(3,2,[3+I,4-I,5+2*I,2+3*I,2-5*I,9+2*I]):B:=matrix(2,3,[-2+I,5+2*I,4+I,
6+7*I,1-I,2+3*I]):
evalm(map(conjugate,A))*evalm(map(conjugate,B))=multiply(evalm(map(conjugate,A)),
evalm(map(conjugate, B)))
multiply(A,B),map(conjugate,multiply(A,B));
evalm(map(conjugate,multiply(A,B))-multiply(evalm(map(conjugate,A)),evalm(map(conjuga
te, B))))
定理 3 (1)
(2)
(3)
A(B + C) = AB + AC ( A ∈ M (m,l : K ), B,C ∈ M (l.n : K ) )
(A + B)C = AC + BC ( A, B ∈ M (m,l : K ), C ∈ M (l.n : K ) )
( A ∈ M (m,l : K ), B ∈ M (l, p : K ), C ∈ M ( p,n : K ))
(αA)B = A(αB) = α(AB) ( A ∈ M (m,l : K ), B ∈ M (l,n : K ),α ∈ K )
(AB)C = A(BC)
証明(2)のみ証明する。
l
l
⎛ l
⎞
AB の第 i 行は ⎜⎜∑ ai,k bk,1 , ∑ ai,k bk,2 ,!, ∑ ai,k bk, p ⎟⎟⎟ であるから、
⎜⎝ k=1
⎠
k=1
k=1
p ⎛ l
p ⎛ l
p ⎛ l
⎞
⎞
⎞
(AB)C の (i, j) 成分 = ∑⎜⎜∑ ai,k bk, p ⎟⎟⎟cs, j = ∑⎜⎜∑ (ai,k bk,s )cs, j ⎟⎟⎟ = ∑⎜⎜∑ ai,k (bk,s cs, j )⎟⎟⎟
⎜
⎜
⎠
⎠ s=1 ⎜⎝ k=1
⎠
s=1 ⎝ k=1
s=1 ⎝ k=1
l
⎛ p
⎞
= ∑ ai,k ⎜⎜∑ bk,s cs, j ⎟⎟⎟ = A(BC) の (i, j) 成分。∴ (AB)C = A(BC) である。
⎟⎠
⎜⎝ s=1
k=1
⎛ a
⎜⎜ 1,1 a1,2
⎜⎜
a
a2,2
A = ⎜⎜⎜ 2,1
⎜⎜ "
"
⎜⎜
⎜⎝ am,1 am,2
! a1,n ⎞⎟⎟
⎟
! a2,n ⎟⎟⎟
⎟⎟ ∈ M (m,n : K )
# " ⎟⎟⎟
⎟
! am,n ⎟⎟⎠
に対して、行と列を入れ替えて得られた行列
⎛
⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎝
a1,1
a1,2
"
a1,n
a2,1 ! am,1 ⎞⎟⎟
⎟
a2,2 ! am,2 ⎟⎟⎟
⎟⎟ ∈ M (n, m : K )
" # " ⎟⎟⎟
⎟
a2,n ! am,n ⎟⎟⎠
を A の転置行列(transeposed matrix)といい、
t
A と表す。作り方から、t A の (i, j) 成分は a j,i
である。
たとえば、
t
⎛ a d ⎞⎟
⎜⎜
⎟ ⎛
⎜⎜ b e ⎟⎟⎟ = ⎜⎜ a b
⎜⎜
⎟ ⎜⎜ d e
⎜⎝ c f ⎟⎟⎠ ⎝
c
f
⎞⎟
⎟⎟,
⎟⎟⎠
t
⎛ a b
⎜⎜
⎜⎜ d e
⎝
c
f
⎛
⎞
⎞⎟ ⎜⎜ a d ⎟⎟
⎟⎟ = ⎜⎜ b e ⎟⎟⎟
⎟
⎟⎟⎠ ⎜⎜
⎜⎝ c f ⎟⎟⎠
定理 4
(1)
t
(A + B) = t A + t B
(2)
t
(AB) = B A
t
( A, B ∈ M (m,n : K ))
( A,∈ M (m,l : K ), B ∈ M (l,n : K )
( A,∈ M (m,l : K ),α ∈ K )
( A,∈ M (m,l : K ))
t
(αA) = α t A
(3)
t
(4)
t t
( A) = A
証明 (2)のみ証明。左辺の (i, j) = AB の ( j,i) 成分
l
l
k=1
k=1
= ∑ a j,k bk,i = ∑ bk,i a j,k = b1,i a j,1 + b2,i a j,2 +!+ bl,i a j,l = t B t A の (i, j) 成分。
Maple では、transepose(A)と入力して得られる。
さて、
⎛
⎜⎜
⎜⎜
A = ⎜⎜⎜
⎜⎜
⎜⎜
⎜⎝
a1,1
a1,2
a2,1 a2,2
"
"
an,1 an,2
! a1,n ⎞⎟⎟
⎟
! a2,n ⎟⎟⎟
⎟⎟ ∈ M (n,n : K )
# " ⎟⎟⎟
⎟
! an,n ⎟⎟⎠
を( n 次の)正方行列(square matrix)という。 a1,1 , a2,2 ,!, ai,i ,!, an,n を A の対角成分
(diagonal components)という。対角成分以外のすべて成分が o の行列
⎛
⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎝
a1,1
0
0
a2,2
"
0
"
0
を対角行列(diagonal matrix)という。
0 ⎞⎟⎟
⎟
! 0 ⎟⎟⎟
⎟⎟
# " ⎟⎟⎟
⎟
! an,n ⎟⎟⎠
!
⎛ a
O
⎜⎜ 1,1
⎜⎜
!
⎜⎜
⎜⎜ O
an,n
⎝
⎞⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎠
と略記することもある。 a1,1 , a2,2 ,!, an,n を対角成分とする対角行列を入力するには
diag(a1,1 , a2,2 ,!, an,n )
と入力する。たとえば、
with(linalg):diag(alpha,beta,gamma), diag(seq(a[i,i],i = 1..5))
対角成分がすべて1の対角行列
⎛ 1
O
⎜⎜
⎜⎜
!
⎜⎜
⎜⎝ O
1
⎞⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎠
を( n 次の)単位行列といい、 En と表す。混乱の恐れがないときには単に E と表す。単位行列
の (i, j) を δi, j と表すと、
⎪⎧1
δi, j = ⎪⎨
⎪⎪⎩0
(i = j)
(i ≠ j)
とかける。これをクロネッカー(Kronecker)のデルタと呼ばれている。
定理 5 AEn = Em A = A
( A ∈ M (m,n : K )
AEn の (i, j) 成分 = ai.1δ1, j + ai.2δ2, j +!+ ai. j δ j, j +!+ ai,nδn, j = ai, j
Maple で単位行列を入力するには、
with(linalg): n:=6:diag(seq(1,k=1..n)); (または、band([1],n)と入力してもよい)
n を指定すれば、何次の単位行列も作れる。
seq(diag(seq(1, k = 1 .. n)), n = 1 .. 7); ( seq(band([1],n),n=1..7) としてもよい )
のようにできる。
A ∈ M (n,n, R) について、 t A = A のとき、A を対称行列という。また t A = −A のとき、
交代行列という。実数 a,b,c,h, g,
⎛ a h
⎜⎜
⎜
⎜⎜ h b
⎜⎜
⎜⎝ g f
f について、
⎛ 0
g ⎞⎟⎟
h
⎜⎜
⎟⎟
⎜
f ⎟⎟ は対称行列、 ⎜⎜ −h 0
⎟
⎜⎜
c ⎟⎟⎟⎠
⎜⎝ g − f
交代行列の対角成分は全て0である。∵
−g ⎞⎟⎟
⎟
f ⎟⎟⎟ は交代行列である。
⎟
0 ⎟⎟⎟⎠
ai, j = −a j,i であるから、ai,i = −ai,i すなわち、ai,i = 0
このとこから、対称行列でかつ交代行列は零行列に限る。また、対称(交代)行列同士の足し
たり引いたりしたものはまた対称(交代)行列であることは明らかである。
例題4 任意の正方行列は対称行列と交代行列の和として一意的に表される。
1
1
B = (A + t A),C = (A − t A) とおくと、 B は対称行列、 C は交代行列である。
2
2
そして、 B + C = A である。 A = B + C = B′ + C ′ ( B, B′ 対称、 C, C ′ は交代)とする。
B − B′ = C ′ −C から、左辺は対称、右辺は交代であるから、 B = B′,C = C ′ 。
例題5
⎛ 3 −2 5 ⎞⎟
⎜⎜
⎟⎟
A = ⎜⎜ 5
7 9 ⎟⎟ を対称行列と交代行列の和として表せ。
⎜⎜
⎟
⎜⎝ 2 8 4 ⎟⎟⎠
with(linalg):A:=matrix(3,3,[3,-2,5,5,7,0,2,8,4]);
B:=evalm(1/2*(A+transpose(A)));C:= evalm(1/2*(A-transpose(A)));
evalm (B+C)
正方行列
A について、帰納的に
A ⋅ A = A 2 , A 2 ⋅ A = A 3 ,!, A k−1 ⋅ A = A k
のように
A のベキ乗(累乗)を定義する。特に、 A 0 = E (単位行列)と約束する。
指数法則: A m A n = A m+n , (A m )n = A m⋅n
が 成 立 す る 。 し か し 、 一 般 に は (A ⋅ B)
m
= Am Bm 成 立 す る と は 限 ら な い 。 A ⋅ B = B ⋅ A で
あるような行列については成立する。また、
m
2 項定理: (A + B)m = ∑ m Cr A m−r B r
r=0
も一般には成立しないが、
A ⋅ B = B ⋅ A であるような行列については成立する。
たとえば、
⎛
⎜⎜
⎜⎜
⎜
対角行列について、 ⎜⎜
⎜⎜
⎜⎜
⎜⎝
a1,1
0
0
a2,2
"
0
"
0
m
⎛ m
⎜⎜ a1,1 0
0 ⎞⎟⎟
⎟⎟
⎜⎜
m
! 0 ⎟⎟
⎜ 0 a2,2
⎟⎟ = ⎜⎜
⎜⎜ "
# " ⎟⎟⎟
"
⎜⎜
⎟
! an,n ⎟⎟⎠
⎜⎜ 0
0
⎝
!
⎞
0 ⎟⎟
⎟⎟
! 0 ⎟⎟⎟
⎟⎟
# " ⎟⎟⎟
m ⎟
⎟⎟
! an,n
⎠
!
⎛
⎜⎜
⎜
A = ⎜⎜⎜
⎜⎜
⎜⎜
⎝
a
0
0
0
0
b
0
0
0
0
c
0
1
0
0
d
⎛
⎞⎟
⎜⎜
⎟⎟
⎜⎜
⎟⎟
⎟⎟ について、 A n = ⎜⎜
⎜⎜
⎟⎟
⎜⎜
⎟⎟
⎠
⎝⎜
an
0
0
0
0
bn
0
0
0
0
cn
0
α
0
0
dn
⎞⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎠
⎛
⎞⎟
⎜⎜
i j⎟
⎜⎜α = ∑ a b ⎟⎟
⎟⎟
⎜⎜
i+ j=n−1
⎟⎠
⎝
i, j≥0
with(linalg):A:=matrix(4,4,[a,0,0,1,0,b,0,0,0,0,c,0,0,0,0,d])
evalm (A^8),expand(evalm (A^8)[1,4])
から推察できる。帰納法で証明すればよい。
例題 6 次の行列についてベキ乗を計算せよ。
(1)
⎛
⎜⎜
⎜
A = ⎜⎜⎜
⎜⎜
⎜⎜
⎝
0
0
0
0
a
0
0
0
0
b
0
0
0
0
c
0
⎞⎟
⎟⎟
⎟⎟
⎟⎟ (2)
⎟⎟
⎟⎟
⎠
⎛
⎜⎜
⎜
A = ⎜⎜⎜
⎜⎜
⎜⎜
⎝
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
⎞⎟
⎛
⎜⎜
⎟⎟
⎜
⎟⎟
⎟⎟ (3) A = ⎜⎜⎜
⎟⎟
⎜⎜
⎟⎟
⎜⎜
⎠
⎝
with(linalg):A:=m atrix(4,4,[0,a,0,0,0,0,b,0,0,0,0,c,0,0,0,0])
seq(A^n=evalm(A^n),n =1..4)
A n = O (n ≥ 4) である。
with(linalg):A:=matrix(4,4,[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1]):
seq(A^n=evalm(A^n),n=1..6)
このことから、
1
0
0
0
0
0
0
2
0
0
2
0
0
2
0
0
⎞⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎠
⎛ n−1
0
0 2 n−1
⎜⎜ 2
⎜⎜
0 2 n−1 2 n−1
0
A n = ⎜⎜
⎜⎜ 0 2 n−1 2 n−1
0
⎜⎜ n−1
⎜⎝ 2
0
0 2 n−1
⎞⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎠
であることが推察できる。正確には帰納法で証明する。
with(linalg):A:=matrix(4,4,[1,0,0,0,0,0,0,2,0,0,2,0,0,2,0,0]):
seq(A^n=evalm(A^n),n=1..6)
⎛
⎜⎜
⎜⎜
A 2n = ⎜⎜
⎜⎜
⎜⎜
⎜⎝
次に
1 0
0 2 2n
0 0
0 1
0
0
2 2n
0
0
0
0
2 2n
⎞⎟
⎛
⎜⎜
⎟⎟
⎟⎟ 2n−1 ⎜⎜
⎟⎟, A
= ⎜⎜
⎟⎟
⎜⎜
⎟⎟
⎜⎜
⎟⎟⎠
⎜⎝
1
0
0
0
2n−1
0
0
0
2
2n−1
0
0
2
0
2n−1
0 2
0
0
⎞⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟⎠
x の多項式 f (x) = a0 x p + a1 x p−1 +!+ a p−1 x + a p と正方行列 A について、
f (A) = a0 A p + a1 A p−1 +!+ a p−1 A + a p E
と定義する。 A
には、
n
A m = A m A n = A m+n より、 f (x) = g(x)⋅h(x) と因数分解されているとき
f (A) = g(A)⋅h(A) であることがわかる。
例題 7 ⎛ α a c ⎞⎟
⎜⎜
⎟⎟
f (x) = x 3 −(α + β + γ)x 2 + (αβ + βγ + γα)x −αβγ と A = ⎜⎜ 0 β b ⎟⎟
⎜⎜
⎟
⎜⎜⎝ 0 0 γ ⎟⎟⎟⎠
について、
f (A) を求めよ。
f (x) = (x −α)(x − β)(x − γ) であるから、
f (A) = (A −αE)(A − βE)(A − γE)
⎛ 0
a
c
⎜⎜
⎜
= ⎜ 0 β −α
b
⎜⎜
⎜⎜⎝ 0
0
γ −α
⎞⎟⎛⎜ α− β a
c
⎟⎟⎜⎜
⎟⎟⎜ 0
0
b
⎟⎟⎜⎜
⎟⎟⎜⎜⎝ 0
0 γ −β
⎠
⎞⎟⎛ α− γ
⎟⎟⎜⎜
⎟⎟⎜⎜ 0
⎟⎟⎜⎜
⎟⎟⎜⎜ 0
⎠⎝
a
c ⎞⎟⎟
⎟
β − γ b ⎟⎟⎟
⎟
0
0 ⎟⎟⎠
⎛ 0 0 * ⎞⎟⎛⎜ α− γ
a
c ⎞⎟⎟ ⎛⎜ 0 0 0 ⎞⎟⎟
⎜⎜
⎟⎟⎜⎜
⎟ ⎜
⎟
= ⎜⎜ 0 0 ** ⎟⎟⎜⎜ 0
β − γ b ⎟⎟⎟ = ⎜⎜⎜ 0 0 0 ⎟⎟⎟
⎜⎜
⎟
⎟ ⎜
⎟
⎜⎝ 0 0 *** ⎟⎟⎠⎜⎜⎜⎝ 0
0
0 ⎟⎟⎠ ⎜⎝ 0 0 0 ⎟⎠
例題 8 ⎛ 2 −1 5 ⎞⎟
⎜⎜
⎟⎟
A = ⎜⎜ 3 4 1 ⎟⎟, f (x) = x 3 − 5x 2 + 6x − 7 とする。 f (A) を求めよ。
⎜⎜
⎟
⎜⎝ 7 9 2 ⎟⎟⎠
with(linalg):A:=matrix(3,3,[2,-1,5,3,4,1,7,9,2]):
f:=x^3-5*x^2+6*x-7:subs(x=A,f)
正方行列
A = (ai, j ) ∈ M (n,n : K ) について、
n
対角成分の総和:
∑a
i,i
i=1
を
A のトレース(trace)といい、 tr(A) と表す。次の性質が成立する。
(1)
tr(αA + βB) = αtr(A)+ βtr(B) ( A, B ∈ M (n,n : K ),α,β ∈ K )
(2)
tr(A ⋅ B) = tr(B ⋅ A) ( A, B ∈ M (n,n : K ) )
(3)
tr(A) = tr( t A) ( A ∈ M (n,n : K ) )
証明(2)
n
n
n
k=1
k=1
k=1
A ⋅ B の対角成分は、 ∑ a1,k bk,1 , ∑ a2,k bk,2 ,!, ∑ an,k bk,n であるから、
n
n
n
n
tr(A ⋅ B) = ∑ ∑ ai,k bk,i = ∑ ∑ bk,i ai,k = tr(BA)
i=1 k=1
k=1 i=1
tr(A) は trace(A)と入力して得られる。
例題 9 ⎛ 4 6 2
⎜⎜
A = ⎜⎜ 7 −2 3
⎜⎜
⎜⎝ 5 1 7
⎞⎟
⎛ 8 5 −4 ⎞⎟
⎜⎜
⎟⎟
⎟
⎟⎟, B = ⎜⎜ 3 7 6 ⎟⎟⎟
⎜⎜
⎟⎟
⎟⎟
⎠⎟
⎝⎜ 2 5 1 ⎟⎠
について、 tr(A),tr(B),tr(AB),tr(BA) を求めよ。
with(linalg):A:=matrix(3,3,[4,6,2,7,-2,3,5,1,7]):B:=matrix(3,3,[8,5,-4,3,7,6,2,5,
1]):
trace(A),trace(B),trace(multiply(A,B)),trace(multiply(B,A));
§2
正則行列
2.1 正則行列
定理 A ∈ M (n,n : K ) について、
AX = XA = E
を満たす行列
証明 X ∈ M (n,n : K ) が存在するならば、一意的である。
AY = YA = E を満たす他に Y があったとする。
Y = EY = (XA)Y = X(AY ) = XE = X
AX = XA = E を 満 た す X が 存 在 す る と き 、 A は 正 則 で あ る と い う 。 そ し て 、 こ の よ う
な
X を A の逆行列(inverse matrix)といい、 A−1 と表す。
例題 10
⎛ a
⎜ 1,1 a1,2
A = ⎜⎜
⎜⎜ a2,1 a2,2
⎝
⎞⎟
⎟⎟ ( Δ = a a − a a ≠ 0 )
1,1 2,2
1,2 2,1
⎟⎟
⎟⎠
⎛
1 ⎜⎜ a2,2 −a1,2
は正則で、 A = ⎜
Δ ⎜⎜⎝ −a2,1 a1,1
−1
⎛ x
⎜ 1,1
X = ⎜⎜
⎜⎜ x2,1
⎝
⎞⎟
⎟⎟
⎟⎟
⎟⎠
x1,2 ⎞⎟⎟
⎟ とおき、 AX = E とする。
x2,2 ⎟⎟⎟⎠
⎧
a1,1 x1,1 + a1,2 x2,1 = 1!!(1)
⎪
⎪
⎨
⎪
⎪
⎩a2,1 x1,1 + a2,2 x2,1 = 0!!(2)
⎧
a1,1 x1,2 + a1,2 x2,2 = 0!!(3)
⎪
⎪
⎨
⎪
⎪
⎩a2,1 x1,2 + a2,2 x2,2 = 1!!(4)
(1)×a2,2 −(2)×a1,2 より、 (a1,1a2,2 − a1,2 a2,1 )x1,1 = a2,2 。∴ x1,1 =
同様に、
x2,1 =
−a2,1
−a
a
, x1,2 = 1,2 , x2,2 = 1,1 をうる。また、
Δ
Δ
Δ
⎛
1 ⎜⎜ a2,2 −a1,2
⎜
Δ ⎜⎜⎝ −a2,1 a1,1
例題 11
a2,2
Δ
⎞⎟⎛ a
⎟⎟⎜⎜ 1,1 a1,2
⎟⎟⎜⎜ a
⎟⎠⎜⎝ 2,1 a2,2
⎞⎟
⎛
0
⎟⎟ = 1 ⎜⎜ a1,1a2,2 − a1,2 a2,1
⎟⎟ Δ ⎜⎜
0
a1,1a2,2 − a1,2 a2,1
⎜⎝
⎟⎠
⎞⎟
⎟⎟ = E
⎟⎟
⎟⎠
⎛
⎜⎜
⎜⎜
A = ⎜⎜⎜
⎜⎜
⎜⎜
⎜⎝
a1,1
0
0
a2,2
"
0
"
0
0 ⎞⎟⎟
⎟
! 0 ⎟⎟⎟
⎟⎟
# " ⎟⎟⎟
⎟
! an,n ⎟⎟⎠
!
⎛
⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎜⎜
−1
は正則で, A = ⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎝
( ai,i ≠ 0
1
a1,1
0
!
0
0
1
a2,2
!
0
"
"
#
0
0
(i = 1,2,!,n) )
"
1
!
an,n
⎞⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎠
X = ( xi, j ) とし、 AX = E とすると、 AX の (i, j) 成分
= ai,1 x1, j + ai,2 x2, j +!+ ai,i xi, j +!+ ai,n xn, j = ai,i xi, j = δi, j
⎪⎧⎪ 1
xi, j = ⎪⎨ ai,i
⎪⎪
⎪⎪⎩0
(1≤ i, j ≤ n)
(i = j )
(i ≠ j )
例題 12
⎛ 1 0 c
⎜⎜
A = ⎜⎜ 0 1 0
⎜⎜
⎜⎝ 0 0 1
⎛ 1 0 c
⎜⎜
⎜⎜ 0 1 0
⎜⎜
⎜⎝ 0 0 1
⎞⎟
⎛ 1 0 −c ⎞⎟
⎜⎜
⎟⎟
⎟
⎟⎟ は正則で、 A−1 = ⎜⎜ 0 1 0 ⎟⎟⎟
⎜⎜
⎟⎟
⎟
⎟⎠
⎜⎝ 0 0 1 ⎟⎟⎠
⎞⎟⎛⎜ x1,1
⎟⎟⎜⎜
⎟⎟⎜⎜ x2,1
⎟⎟⎜⎜
⎟⎠⎜ x
⎜⎝ 3,1
x1,2
x2,2
x3,2
x1,3 ⎞⎟⎟ ⎛ 1 0 0 ⎞
⎟⎟
⎟ ⎜⎜
x2,3 ⎟⎟⎟ = ⎜⎜ 0 1 0 ⎟⎟⎟
⎟⎟ ⎜⎜
⎟⎟
x3,3 ⎟⎟⎠ ⎜⎝ 0 0 1 ⎟⎠
とすると、視察により、
x3,1 = 0, x2,1 = 0, x1,1 = 1, x3,2 = 0, x2,2 = 1, x1,2 = 0, x3,3 = 1, x2,3 = 0, x1,3 + c = 0
がわかる。i.e.,
x1,3 = −c .
例題 13
A は A 2 − A + E = O のとき、正則である
A(E − A) = (E − A)A = E より明らかである。
正方行列
例題 14
⎛
⎜⎜
⎜
A = ⎜⎜⎜
⎜⎜
⎜⎜
⎝
⎛
⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎝
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
a
b
c
1
0
1
0
0
0
0
1
0
a
b
c
1
⎛
⎞⎟⎜⎜
⎟⎟⎜⎜
⎟⎟⎜⎜
⎟⎟⎜
⎟⎟⎜⎜
⎟⎟⎜⎜
⎠⎜⎜
⎝
⎞⎟
⎛
⎜⎜
⎟⎟
⎜
⎟⎟
⎟⎟ は正則で、 A−1 = ⎜⎜⎜
⎟⎟
⎜⎜
⎟⎟
⎜⎜
⎠
⎝
x1,1
x1,2
x1,3
x2,1
x2,2
x2,3
x3,1
x3,2
x3,3
x4,1
x4,2
x4,3
1
0
0
0
0 −a ⎞⎟⎟
⎟
0 −b ⎟⎟
⎟ である。
1 −c ⎟⎟⎟
⎟
0 1 ⎟⎠
0
1
0
0
x1,4 ⎞⎟⎟ ⎛
⎟ ⎜
x2,4 ⎟⎟⎟ ⎜⎜⎜
⎟⎟ = ⎜
x3,4 ⎟⎟⎟ ⎜⎜⎜
⎟⎟ ⎜
x4,4 ⎟⎟⎠ ⎝⎜
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
⎞⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎠
とする。視察により、
x4,1 = 0, x3,1 = 0, x2,1 = 0, x1,1 = 1, x4,2 = 0, x3,2 = 0, x2,2 = 1, x1,2 = 0, x4,3 = 0, x3,3 = 1
x2,3 = 0, x1,3 = 0, x4,4 = 1, x3,4 + c = 0, x2,4 + b = 0, x1,4 + a = 0
x1,4 = −a, x2,4 = −b, x3,4 = −c
定理 6
−1
(1)
A が正則ならば、 A−1 も正則で、 ( A−1 ) = A 。
(2)
A, B 共に正則ならば、 A ⋅ B は正則で、 ( A ⋅ B) = B−1 A−1
(3)
A が正則ならば、 t A も正則で、 ( t A) =
(4) A が正則ならば、 A m も正則で、 ( A m ) = ( A−1 )
−1
−1
t
( A−1 )
−1
m
証明
(1) (2) A( A−1 ) = ( A−1 ) A = E を ( A−1 ) からみればよい。
( A ⋅ B)( B−1 A−1 ) = A(BB−1 )A−1 = AA−1 = E
( B−1A−1 )( A ⋅ B) = B−1 (A−1A)B = B−1B = E
AA−1 = A−1 A = E の辺々の転置行列を考えればよい。
(3) (4) ( AA−1 )
m
= ( A−1 A) = E から明らか。
m
定理 7
(1)
正則行列
A ∈ M (m, m : K ), B ∈ M (m,n : K ) について、
。
AX = B
を満たす行列
(2)
正則行列
X ∈ M (m,n : K ) が一意的に存在し、 X = A−1 B とかける。
A ∈ M (n,n : K ), B ∈ M (m,n : K ) について、
XA = B
を満たす行列
X ∈ M (m,n : K ) が一意的に存在し、 X = B ⋅ A−1 とかける。
証明 (1) 存在したとすると、両辺に左側から
A−1 をかけると、
A−1 (AX) = A−1 B,(A−1 A)X = A−1 B, ∴ X = A−1 B
A(A−1 )B = (AA−1 )B = B で存在が確かめられた。
(2) (1)と同様。
例題 について、
⎛ 3 4 ⎞⎟
⎛
⎞
⎟⎟, B = ⎜⎜ 2 4 −1 5 ⎟⎟⎟
A = ⎜⎜⎜
⎜⎜⎝ 3 1 2 6 ⎟⎠
⎜⎝ 5 7 ⎟⎠
AX = B を満たす X は
⎛ 7 −4 ⎞⎟⎛ 2 4 −1 5 ⎞⎟ ⎛ 2
24 −15 11 ⎞⎟⎟
⎟⎟⎜⎜
⎟⎟ = ⎜⎜
X = A−1 B = ⎜⎜⎜
⎜⎝ −5 3 ⎟⎠⎜⎜⎝ 3 1 2 6 ⎟⎠ ⎜⎜⎝ −1 −17 11 −7 ⎟⎟⎠
と表される。
Maple で逆行列を求めるには
inverse(A)
と入力する.たとえば、
⎛ 2 4 5 ⎞⎟
⎜⎜
⎟⎟
A = ⎜⎜ −1 3 6 ⎟⎟
⎜⎜
⎟
⎜⎝ 7 9 8 ⎟⎟⎠
の逆行列を求めてみよう。
with(linalg):A:=matrix(3,3,[2,4,5,-1,3,6,7,9,8]);
the_inverse_matrix_of_A:=inverse(A)
上の例題を M aple で計算しておく。
with(linalg):A:=matrix(2,2,[3,4,5,7]):B:=matrix(2,4,[2,4,-1,5,3,1,2,6]):
X:=multiply(inverse(A),B)
逆行列の理論的な計算方法(手計算で行う)については後ほど述べる。
2.2
行列の区分け
⎛
⎜⎜
⎜⎜
⎜
行列: A = ⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎝
2
−1
3
1
7
5
4
8
4
3
8 0 ⎞⎟⎟
⎟
2 5 ⎟⎟
⎟
9 2 ⎟⎟⎟
⎟
7 −1 ⎟⎟⎟
⎟
2 4 ⎟⎠
を考えよう
A
(1,1)
⎛ 2 5 ⎞⎟ (1,2) ⎛ 8 0
⎟, A = ⎜⎜
= ⎜⎜⎜
⎜⎜⎝ 2 5
⎜⎝ −1 4 ⎟⎟⎠
⎛
⎞
⎛
⎞
⎞⎟ (2,1) ⎜⎜ 3 8 ⎟⎟ (2,2) ⎜⎜ 9 2 ⎟⎟
⎟
⎟⎟, A = ⎜⎜ 1 4 ⎟⎟, A
= ⎜⎜ 7 −1 ⎟⎟⎟
⎟⎠
⎜⎜
⎜⎜
⎟⎟
⎟
⎜⎝ 2 4 ⎟⎟⎠
⎝⎜ 7 3 ⎟⎠
とおくと
⎛ (1,1)
A
A = ⎜⎜⎜ (2,1)
⎜⎝ A
A(1,2)
A(2,2)
⎞⎟
⎟⎟
⎟⎟
⎠
と表すこともある。これを A の1つの区分け(ブロック化)という。
区分、
A(1,1) を A の(1,1)
A(1,2) を(1,2)区分、 A(2,1) を(2,1)区分、 A(2,2) を(2,2)区分という。
一般に、
A = (ai, j ) ∈ M (m,n : K ) について、
m = m1 + m2 +!+ mk ,n = n1 + n2 +!+ nl
( mi > 0,n j > 0 )
とする。
⎛ a
⎜⎜ m1+!+ms−1+1,n1+!+nt−1+1 am1+!+ms−1+1,n1+!+nt−1+2 ! am1+!+ms−1+1,n1+!+nt−1+nt
⎜⎜
am1+!+ms−1+2,n1+!+nt−1+2 ! am1+!+ms−1+2,n1+!+nt−1+nt
⎜ a
(s,t )
A = ⎜⎜ m1+!+ms−1+2,n1+!+nt−1+1
⎜⎜
"
"
"
"
⎜⎜
a
a
!
a
⎜⎜⎝ m1+!+ms−1+ms ,n1+!+nt−1+1 m1+!+ms−1+ms ,n1+!+nt−1+2
m1+!+ms−1+ms ,n1+!+nt−1+nt
とおくと、
⎛ (1,1)
⎜⎜ A
⎜⎜ (2,1)
A = ⎜⎜ A
⎜⎜ "
⎜⎜ (k,1)
⎜⎝ A
A(1,2) ! A(1,l )
A(2,2) ! A(2,l )
"
"
"
(k,2)
(k,l )
A
! A
⎞⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟⎠
⎞⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎠
と表すことができる。これを行列
A の1つの区分け(ブロック化)という。 A(s,t ) を
(s,t) 区分(ブロック)という。
B = (bi, j ) ∈ M (m,n : K ) について、上と同形の区分けをする。
⎛ (1,1)
⎜⎜ B
⎜⎜ (2,1)
B = ⎜⎜ B
⎜⎜ "
⎜⎜ (k,1)
⎜⎝ B
B(1,2) ! B(1,l )
B(2,2) ! B(2,l )
"
"
"
(k,2)
(k,l )
B
! B
⎞⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟⎠
とする。
⎛ (1,1)
⎜⎜ A + B(1,1)
⎜⎜ (2,1)
(2,1)
A + B = ⎜⎜ A + B
⎜⎜
"
⎜⎜
(k,1)
⎜⎝ A + B(k,1)
A(1,2) + B(1,2)
A(2,2) + B(2,2)
"
(k,2)
A + B(k,2)
⎞
! A(2,l ) + B(1,l ) ⎟⎟
⎟
! A(2,l ) + B(2,l ) ⎟⎟⎟
⎟⎟
⎟⎟
"
"
⎟
! A(k,l ) + B(k,l ) ⎟⎟⎠
⎛
⎜⎜ αA(1,1) αA(1,2) ! αA(1,l )
⎜⎜
(2,1)
αA(2,2) ! αA(2,l )
αA = ⎜⎜ αA
⎜⎜
"
"
"
"
⎜⎜
(k,1)
(k,2)
⎜⎝ αA
αA
! αA(k,l )
⎞⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟⎠
( α∈K )
が成立することは明らかである。
定理 8
A = (ai,k ) ∈ M (m,l : K ), B = (bk, j ) ∈ M (l,n : K ) とし、
A, B を m = m1 + m2 ,l = l1 + l2 ,n = n1 + n2 (m1 , m2 ,l1 ,l2 ,n1 ,n2 > 0) と区分けすると、
⎛ (1,1)
A
A ⋅ B = ⎜⎜⎜ (2,1)
⎜⎝ A
A(1,2)
A(2,2)
⎞⎟⎛ (1,1)
⎟⎟⎜⎜ B
⎟⎟⎜⎜ B(2,1)
⎠⎝
⎛ (1,1) (1,1)
⎜⎜ A B + A(1,2) B(2,1)
= ⎜ (2,1) (1,1)
⎜⎜⎝ A B + A(2,2) B(2,1)
B(1,2)
B(2,2)
⎞⎟
⎟⎟
⎟⎟
⎠
⎞
A(1,1) B(1,2) + A(1,2) B(2,2) ⎟⎟
⎟
A(2,1) B(1,2) + A(2,2) B(2,2) ⎟⎟⎠
が成立する。
証明 C (s,t ) = A(s,1) B(1,t ) + A(s,2) B(2,t ) (s = 1,2,t = 1,2) とおく。
C (1,1) の (u,v) 成分 = (au,1b1,v +!+ au,l1 bl1 ,v )+ (au,l1+1bl1+1,v +!+ au,l1+l2 bl1+l2 ,v )
l
= ∑ au,k bk,v = AB の (u,v) 成分
k=1
C (1,2) の (u,v) 成分 = (au,1b1,n1+v +!+ au,l1 bl1 ,n1+v )+ (au,l1+1bl1+1,n1+v +!+ au,l1+l2 bl1+l2 ,n1+v )
l
= ∑ au,k bk,n1+v = AB の (u,n1 + v) 成分
k=1
C
(2,1)
の (u,v) 成分 = (am1+u,1b1,v +!+ am1+u,l1 bl1 ,v )+ (am1+u,l1+1bl1+1,v +!+ am1+u,l1+l2 bl1+l2 ,v )
l
= ∑ am1+u,k bk,v = AB の (m1 + u,v) 成分
k=1
C
(2,2)
の (u,v) 成分
= (am1+u,1b1,n1+v +!+ am1+u,l1 bl1 ,n1+v )+ (am1+u,l1+1bl1+1,n1+v +!+ am1+u,l1+l2 bl1+l2 ,n1+v )
l
= ∑ am1+u,k bk,n1+v = AB の (m1 + u,n1 + v) 成分
k=1
注意:一般に、
λ
µ
ν
i=1
j=1
k=1
m = ∑ mi ,l = ∑ l j ,n = ∑ nk と区分けすると
⎛ (1,1)
⎜⎜ A
⎜⎜ (2,1)
AB = ⎜⎜ A
⎜⎜ "
⎜⎜ (λ,1)
⎜⎝ A
⎛
⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎜
= ⎜⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎝
µ
∑A
(1,k )
B
(k,1)
k=1
µ
∑A
µ
∑A
(2,k )
B
(k,1)
µ
∑A
B
(k,2)
!
(2,k )
B
(λ,k )
B(k,1)
k=1
∑A
µ
∑A
(1,k )
B
(k,2)
!
µ
∑A
(2,k )
B(k,ν )
(λ,k )
"
B(k,2) !
k=1
"
µ
∑A
(λ,k )
k=1
が成立する。
Maple で部分行列、行列の張り合わせについて説明する。
A = (ai, j ) ∈ M (m,n : K ) において、
⎛ a
⎜⎜ u,k ! au,r
⎜
# "
⎜⎜ "
⎜⎜
⎜⎝ av,k ! av,r
を
⎞⎟
⎟⎟
⎟⎟ (u ≤ v, k ≤ r)
⎟⎟
⎟⎟
⎟⎠
A の部分行列という。これは次のように入力して得られる。
submatrix(A,u..v,k..r)
(k,ν )
k=1
"
µ
B(1,2) ! B(1,ν )
B(2,2) ! B(2,ν )
"
"
"
(µ,2)
(µ,ν )
B
! B
k=1
k=1
"
∑A
(1,k )
k=1
k=1
µ
⎞⎟⎛ (1,1)
⎟⎟⎜⎜ B
⎟⎟⎜⎜ B(2,1)
⎟⎟⎜⎜
⎟⎟⎜ "
⎟⎟⎜⎜
⎟⎟⎠⎜⎜⎝ B(µ,1)
A(1,2) ! A(1,µ)
A(2,2) ! A(2,µ)
"
"
"
(λ,2)
(λ,µ)
A
! A
B(k,ν )
⎞⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎠
⎞⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟
⎟⎟⎠
たとえば、
⎛
⎜⎜
⎜
A = ⎜⎜⎜
⎜⎜
⎜⎜
⎝
1 −1 3 9 ⎞⎟⎟
⎛
⎞
⎟
⎛ 4 1 ⎞⎟ ⎜⎜ 5 4 ⎟⎟⎟
5 4
1
0 ⎟⎟
⎟ , ⎜⎜ 8 2 ⎟⎟
⎟ から、部分行列 ⎜⎜⎜
⎟⎟
⎜⎝ 2 −7 ⎟⎟⎠ ⎜⎜
8 2 −7 5 ⎟⎟⎟
⎝⎜ 1 6 ⎟⎠
⎟⎟
1 6
8 10 ⎠
を取り出してみよう。
with(linalg):A:=matrix(4,4,[1,-1,3,9,5,4,1,0,8,2,-7,5,1,6,8,10]):
submatrix(A,2..3,2..3),submatrix(A,2..4,1..2);
seq(submatrix(A,1..k,1..k),k=1..4);
これらを狭義の
k (k = 1,2, 3, 4) 次主小座行列と呼ばれている。
seq(submatrix(A,1 ..4,k..k),k=1..4)
これは行列
A の列ベクトルである。
A ∈ M (m,l : K ), B ∈ M (m,n : K ) から、 A , B の張り合わせ (A B) ∈ M (m,l + n : K ) を構
成するには
augm ent(A,B)
と入力する。たとえば、
⎛ 2 4 5 ⎞⎟
⎛ 2 4 5 5 1 ⎞⎟
⎛ 5 1 ⎞⎟
⎜⎜
⎜⎜
⎜⎜
⎟⎟
⎟
⎟
A = ⎜⎜ 0 1 9 ⎟⎟, B = ⎜⎜ 3 7 ⎟⎟⎟ か ら (A B) = ⎜⎜ 0 1 9 3 7 ⎟⎟⎟ を 構 成 し て み よ う 。
⎜⎜
⎟
⎜⎜
⎜⎜
⎟
⎟
⎜⎝ −1 8 7 ⎟⎟⎠
⎜⎝ −1 8 7 6 5 ⎟⎟⎠
⎜⎝ 6 5 ⎟⎟⎠
with(linalg):A:=matrix(3,3,[2,4,5,0,1,9,-1,8,7]):B:=matrix(3,2,[5,1,3,7,6,5]):
augm ent(A,B)
例題 14
⎛ 1 4 ⎞⎟
⎛
⎞
⎛
⎞
⎛
⎞
⎟⎟, B = ⎜⎜ 5 9 ⎟⎟⎟,C = ⎜⎜ 4 6 ⎟⎟⎟, M = ⎜⎜ 7 8 ⎟⎟⎟
A = ⎜⎜⎜
⎜⎜⎝ 8 6 ⎟⎠
⎜⎜⎝ 7 8 ⎟⎠
⎜⎝ 3 0 ⎟⎠
⎜⎜⎝ 9 2 ⎟⎠
⎛ A
⎜⎜⎝ C
から、 ⎜⎜
B
M
⎞⎟
⎟⎟ を構成してみよう。
⎟⎠
with(linalg):A:=matrix(2,2,[1,4,3,0]):B:=matrix(2,2,[5,9,8,6]):C:=matrix(2,2,[4,
6,7,8]):M :=matrix(2,2,[7,8,9,2])
transpose(augment(transpose(augment(A,B)),transpose(augment(C,M))))
A = (ai,k ) ∈ M (m,l : K ), B = (bk, j ) ∈ M (l,n : K ) で
⎛ b
⎜⎜ 1, j
⎜
B j = ⎜⎜ !
⎜⎜
⎜⎝ bl, j
⎞⎟
⎟⎟
⎟⎟
⎟⎟ ( j = 1,2,",n) とおくと、 A ⋅ B = ( AB1 , AB2 ,!, ABn ) とかける。
⎟⎟
⎟⎠
また、 Ai = (ai,1 ,!, ai,l )
(i = 1, 2,!, m) とおくと、
⎛ A B ⎞⎟
⎜⎜ 1 ⎟
⎟
⎜
A ⋅ B = ⎜⎜ ! ⎟⎟⎟
⎟
⎜⎜
⎜⎝ Am B ⎟⎟⎠
と表すことができる。
例題 15
A ∈ M (m, m : K ), B ∈ M (n,n : K ) が共に正則であるとき、
⎛ A
⎜⎜
⎜⎜ O
⎝ n,m
⎛ A
⎜
は正則で、 ⎜⎜
⎜⎝ On,m
⎞⎟
⎟⎟ ∈ M (m + n, m + n : K )
⎟⎟
⎠
C
B
C
B
−1
⎛ −1
⎞⎟
A
−(A−1CB−1 )
⎟⎟ = ⎜⎜⎜
⎟⎟
⎜⎜ O
B−1
⎠
⎝ n,m
⎞⎟
⎟⎟
⎟⎟
⎟⎠
である。
⎛ A
⎜⎜
⎜⎜ O
⎝ n,m
C
B
⎞⎟⎛
⎟⎟⎜⎜ X Y
⎟⎟⎜⎜⎝ Z W
⎠
⎞⎟ ⎛⎜ Em
⎟⎟ = ⎜⎜
⎟⎠ ⎜⎜ On,m
⎝
Om,n ⎞⎟⎟
⎟
En ⎟⎟⎟⎠
とする。
AX = Em , BZ = On,m , AY + CW = Om,n , BW = En
でなければならない。
X = A−1 ,W = B−1 ,Y = −A−1CB−1 , Z = On,m 、 をうる。
⎛
⎜⎜
⎜⎜
たとえば、 ⎜
⎜⎜
⎜⎜
⎜⎝
2
1
0
0
5
3
0
0
6
2
3
4
−1
⎛ 2 5 ⎞⎟
⎟
ここで、 −⎜⎜
⎜⎜⎝ 1 3 ⎟⎟⎠
4
1
5
7
−1
⎞⎟
⎛ 3 −5 −28 19 ⎞⎟
⎜⎜
⎟⎟
⎟⎟
⎜⎜ −1 2
⎟⎟
6 −4 ⎟⎟
⎟⎟ = ⎜⎜
⎟
⎟⎟
0
7 −5 ⎟⎟⎟
⎜⎜ 0
⎟⎟
⎟
⎜⎜ 0
0 −4
3 ⎟⎠
⎠
⎝
−1
⎛ 6 4 ⎞⎟⎛ 3 5 ⎞⎟
⎛
⎞
⎜⎜
⎟⎟⎜⎜
⎟⎟ = ⎜⎜ −28 19 ⎟⎟⎟ である。
⎜⎜⎝ 2 1 ⎟⎠⎜⎜⎝ 4 7 ⎟⎠
⎜⎜⎝ 6 −4 ⎟⎠
2.3 基本行列と基本変形
ここで行列の変形に欠かせない行列に対する操作法を次の一覧表にまとめておく。
入力 出力(変形)内容 swaprow(A,i,j) 行列 A において i 行と j 行を入れ替える swapcol(A,i,j) 行列 A において i 列と j 列を入れ替える mulrow(A,i,u) 行列 A において i 行を u 倍する mulcol(A,i,u) 行列 A において i 列を u 倍する addrow(A,i,j,u) 行列 A において i 行を u 倍して j 行に加える addcol(A,i,j,u) 行列 A において i 列を u 倍して j 列に加える 注:addrow(A,i,j,1), addcol(A,i,j,1)は単に addrow(A,i,j), addcol(A,i,j)と入力する。
(I)
n 次の単位行列
En において、 k 行(列)と j 行(列)を入れ替えして得られた
行列を Pn (i, j) とする。すなわち、
i
j
⎛ 1
⎞⎟
!
!
⎜⎜
⎟⎟
⎜⎜
⎟⎟
" !
!
⎜⎜
⎟
⎜⎜ # # 0 # 1 # # ⎟⎟⎟ i である。
⎟⎟
Pn (i, j) = ⎜⎜⎜
"
⎟
⎜⎜ # # 1 # 0 # # ⎟⎟⎟ j
⎟⎟
⎜⎜
⎟⎟
⎜⎜
!
! "
⎟⎟
⎜⎜
⎟⎠
!
!
1
⎝
Pn (i, j)2 = En である。 ∵ Pn (i, j) の k 行は (δk,1 ,!δk,k ,!δk,n ) , l 列は t (δ1,l ,!,δl,,l ,!δn,l ) で
ある。ただし k ≠ i, j,l ≠ i.j とする。 Pn (i, j) の (k.l) 成分= δk.l である。また、 Pn (i, j) の i
2
行は (0,!,0,!1,
"$$$$#$$$$% 0!0) , i 列は
j
t
2
(0,!,0,!1,
"$$$$
$#$$$$$% 0!0) であるから、 Pn (i, j) の (i,i) 成分=1。
j
2
同様に、 Pn (i, j) の (i, j) , ( j,i) 成分は0、
Pn (i, j)2 の ( j, j) 成分=1である。
Pn (i, j)2 = En は Pn (i, j) は正則で、 Pn (i, j)−1 = Pn (i, j) であることを意味する。
(II)
n 次の単位行列
En において、(i,i) 成分を c と置き換えて得られた行列を Qn (i;c) と
する。すなわち、
i
⎛ 1
⎞⎟
!
⎜⎜
⎟⎟
⎜⎜
⎟⎟
" !
である。
⎜⎜
⎟
Qn (i;c) = ⎜ # # c # # ⎟⎟⎟ i
⎜⎜
⎟⎟
! "
⎜⎜
⎟⎟
⎟⎟
⎜⎜
!
1
⎝
⎠
⎛ 1⎞
c ≠ 0 のとき、 Qn (i;c) は正則で、 Qn (i;c)−1 = Qn ⎜⎜⎜i; ⎟⎟⎟ であることは明らかである。
⎝ c⎠
(III) n 次の単位行列
En において、 (i, j) 成分を c と置き換えて得られた行列を Rn (i, j;c)
とおく。ただし、 i ≠
j とする。すなわち、
i
j
⎛ 1
⎞⎟
!
!
⎜⎜
⎟⎟
⎜⎜
⎟⎟
" !
!
⎜⎜
⎟
⎜⎜ # # 1 # c # # ⎟⎟⎟ i
⎟⎟
Rn (i, j;c) = ⎜⎜⎜
! " !
⎟
⎜⎜ # # 0 # 1 # # ⎟⎟⎟ j
⎟⎟
⎜⎜
⎟⎟
⎜⎜
!
! "
⎟⎟
⎜⎜
!
!
1 ⎟⎠
⎝
である。
Rn (i, j;c)Rn (i, j;−c) = En である。∵ Rn (i, j;c) の i 行= (0,!,1,!,c,!0) , Rn (i, j;−c) の j
t
(0,!,−c,!,1,!0) であるから、 Rn (i, j;c)Rn (i, j;−c) の (i, j) 成分は 0 である。そし
て、
Rn (i, j;c)Rn (i, j;−c) の 対 角 成 分 は 全 て 1 、 そ れ 以 外 の 成 分 は 0 で あ る こ と は 明 ら か
列=
である。
Pn (i, j), Qn (i;c), Rn (i, j;c) を n 次の基本行列という。
Maple で基本行列を作ってみよう。
with(linalg):n:=6:P[n](2,5):=swaprow(diag(seq(1, k = 1..n)),2,5);n:=’n’:
A = (ak, j ) ∈ M (6, 7 : K ) について、 P6 (2,5)A はどのような行列か計算してみよう。
m:=6:n:=7:A:=matrix(m,n,[seq(seq(a[i,j],j=1..n),i=1..m)]):
evalm(P[m](2,5))*evalm(A) = multiply(evalm(P[m](2, 5)),A)
左辺を計算した結果、2行と5行が入れ替わっていることが分かる。
次に、
AP7 (2,5) がどのような行列か計算してみよう。
m:=7: P[m](2,5):=swaprow(diag(seq(1, k = 1..m)),2,5);
evalm(A)*P[m](2, 5) = multiply(A, P[m](2, 5))
左辺を計算した結果、2列と5列が入れ替わっていることが分かる。
一般に、 A =
(ak, j ) ∈ M (m,n : K ) について、 Pm (i, j)A は A において、 i 行と j 行が入れ
替わった行列になる。∵
k ≠ i, j について Pm (i, j) の k 行は (δk,1 ,!,δk,k ,!δk,n ) であるから、
Pm (i, j)A の k 行 = (ak,1 ,!, ak,n ) で あ る 。 Pm (i, j) の i 行 は (0,!,0,!,1,!,0) で あ る か ら 、
Pm (i, j) A の i 行 は (a j,1 ,!,a j,n ) で あ る 。 Pm (i, j) の j 行 は (0,!,1,!,0,!,0) で あ る か ら 、
Pm (i, j)A の j 行= (ai,1 ,!, ai,n ) である。
A = (ak, j ) ∈ M (6, 7 : K ) について、 Q6 (3;c)A はどのような行列か計算してみよう。
n:=6:Q[n](3,c):=mulrow(diag(seq(1,k=1..n)),3,c):
evalm (Q[n](3,c))*evalm (A)=m ultiply(Q[n](3, c),A)
Qn (3;c)A は A において、3行を c 倍した行列であることが分かる。 AQ7 (3;c) を計算し
てみよう。
n:=7:Q[n](3, c):=mulrow(diag(seq(1,k =1..n)),3,c): evalm (A),evalm(Q[n](3,c))=m ultiply(A,Q[n](3,c))
AQ7 (3;c) は A において3列を c 倍した行列であることがわる。
一般に、 A =
であり
(ak, j ) ∈ M (m,n : K ) について、 Qm (i;c)A は A において, i 行を c 倍した行列
AQn (i;c) は i 列を c 倍した行列である。 ∵ Qm (i;c) の k (≠ i) 行は (δk,1 ,!,δk,k ,
!,δk,n ) であるから Qm (i;c)A の i 行以外は A と変わらない。 Qm (i;c) の i 行は (δi,1 ,!, cδi,i ,
!,δi,n ) であるから、 Qm (i;c)A の i 行は (cai.1 ,!, cai,n ) である。
R6 (2,5;c)A を計算してみよう。
m := 6; R[m](2, 5, c) := diag(seq(1, k = 1 .. m))
R[m](2,5,c)[2,5]:=c:
evalm (R[m](2,5,c))*evalm(A)=multiply(R[m](2,5,c),A)
R[m](2,5,c)A は A において、5 行を c 倍して 2 行に加えた行列であることが分かる。
m := 7; R[m](2, 5, c) := diag(seq(1, k = 1 .. m)):
R[m](2, 5, c)[2, 5] := c:
evalm (A)*evalm(R[m](2,5,c))=m ultiply(A,R[m](2,5,c))
AR7 (2,5;c) は A で2列を c 倍して5列に加えた行列であることがわかる。
一般に、
A = (ak, j ) ∈ M (m,n : K ) について、 Rm (i, j;c)A は A において、 j 行を c 倍して
i 行に加えた行列である。なぜならば、 Rm (i, j;c) の k (≠ i ) 行は (δk,1 ,!,δk,k ,!,δk,m ) であ
j
"$$$$$$$
#
i
k
k
(δ
,!,δ
,!,c
!,δi,m )
R
(i,
j;c)A
R
(i,
j;c)
i,i
るから、 m
の 行は A の 行である。 m
の 行は i,1
Rm (i, j;c)A の i 行は (ai,1 + ca j,1 ,!,ai,n + ca j,n である。
AR (i, j;c) は A において、i 列を c 倍して j 列に加えた行列である。なぜならば、
さらに、 n
であるから、
Rn (i, j;c) の k ( ≠ j )列 は t (δ1,k ,!,δk,k ,!,δm,k ) で あ る か ら 、 ARn (i, j;c) の k 列 は A の k
j
"$$$$$$$$
#
t
列そのものである。 Rn (i, j;c) の j 列は (δ1, j ,!,cδi,i ,!,1!,δm, j ) であるから、 ARn (i, j;c)
の
j 列は t (ca1,i + a1, j ,ca2,i + a2, j ,!,cam,i + am, j ) である。
以上のことをまとめて一覧表にしておこう。
A ∈ M (m,n : K ) について、
I Pm (i, j)A
A において i 行と j 行の交換 APn (i, j)
A において i 列と j 列の交換 Qm (i;c)A
II AQn (i;c)
A において i 行を c 倍する A において i 列を c 倍する Rm (i, j;c)A
A において j 行を c 倍して i 行に加える III ARn (i, j;c)
A において i 列を c 倍して j 列に加える 行列 A に左側から基本行列を掛けることを A の左側基本変形という、また右側から掛
けることを A の右側基本変形という。右左あわせて行列の基本変形という。 A = (ai, j ) ∈ M (m,n : K ) とし、 a p,q ≠ 0 とする。 ⎛
Rm (m, p;−am,q )!Rm (2, p;−a2,q )Rm (1, p;−a1,q )Qm ⎜⎜⎜ p,
⎜⎝
1 ⎞⎟⎟
⎟ A a p,q ⎟⎠
q
⎛
⎜⎜
⎜⎜
⎜⎜
⎜⎜
= ⎜⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎜⎜
⎝
* ! 0
" #
0
* ! 1
" 0
#
#
* ! 0
! * ⎞⎟⎟
⎟
# ⎟⎟
⎟⎟
⎟⎟
⎟⎟
! * ⎟⎟ p
⎟⎟
"
⎟⎟
⎟⎟
⎟⎟
! * ⎟⎠