math.luma.dev
検索
/linear-algebra/basics/matrix-multiplication

行列同士の積の定義

行列の積(matrix multiplication)

行列(matrix)An×mBm×l行列の積AB行列Cn×lとして定義する。ただし、

(ai,j)i,jn×m(bj,k)j,km×l=def(1jmai,j×bj,k)i,kn×l

とする。

ところで、行列の行(row)(column)に関する定義は基本的には対称的で、どちらが横向きでもいいのだが、そうでない定義(片方で定義したものが特に意味を持つ定義)というのが今後登場する。この章にもそうした定義が登場する。その非対称性は、この行列の積の定義の、の非対称性に由来する。

ABは省略してABとも書く。

行列の積の計算方法

TODO

行列の積の意味

TODO

多変数(multiple variable)線形方程式(system of linear equations)行列の積で表す

{3x+y+2z=3x+(1)y+z=4

(312111)(xyz)=(34)

と表すことができる。

より一般に、n変数(variable)m個の方程式(equation)が連立しているとき、係数(coefficient)を表す行列An×m変数を表すベクトル(vector)x=(x0,x1,,xn1)、そして定数部を表すベクトルb=(b0,b1,,bm1)を用いて、

Ax=b

と表せる。これを線型方程式と呼ぶ。また、b=0であるとき、線形方程式斉次(homogeneous)さいじであるといい、斉次方程式(homogeneous system)さいじほうていしきと呼ぶ。

行列の積の性質

1. 結合律: (AB)C=A(BC)

証明

TODO

2. 行列の和(matrix addition)との分配則(distributivity): A(B+C)=AB+AC

証明略。

3. スカラー倍(scaling)との結合律: (kA)B=k(AB)

証明略。

4. t(AB)=tBtA

証明

X(左辺)とする。tX=ABとなる。

txi,k=1jmai,j×bj,k()

上記のikを入れ替えることで転置(transpose)となる。

xi,k=1jmak,j×bj,i

Y(右辺)とする。

yi,j=1jmtbi,j×taj,k()=1jmbj,i×ak,j(の定義より、それぞれの添字を入れ替える)=1jmak,j×bj,i(に関する)

以上より i,j [xi,j=yi,j]であることがわかった。つまり、X=Yとなる。

逆行列(inverse)

行列Aに対して、AB=IかつBA=Iとなる行列B逆行列と呼ぶ。

注意: このようなA正方行列(square matrix)しかありえないが、証明するまでは循環論法を避けるためにこれらの性質は使わない。

正則行列(invertible)

正則行列とは、逆行列が存在する行列のことである。

定理: 正則行列A逆行列は一意である

正則行列A逆行列A1と書く。

証明

BC正則行列A逆行列とする。

AB=I  CAB=C(左からCを乗じた)    (CA)B=C()    IB=C(の定義よりCA=I)    B=C(の性質より)

正則行列の性質

正則行列0のみのは含まれない。

0のみののことを(zero)と呼ぶことにする。

証明

AB=I

行列同士の積の定義を見てもらうとわかるように、Ai0のみのなら、Ii0のみと言うことになるが、Iにははないので矛盾。
BA=Iに対して同様の議論をうことで、も含まれない。

主成分(leading entry)

主成分とは、行列内の要素(element)であって、0を除いたもののうち、各ごとに、最も左にある要素のこと。
ごとに、高々1個の主成分が存在する。

なお、この主成分に関して定義されていることがまさに、上記で述べたの非対称性の一つになる。

行階段形(row echelon form)

行階段形とは、以下の条件をすべて満たす行列のこと。

主成分が右肩下がりである。
0だけのより、そうでないがすべて上にくる

行簡約階段形(reduce row echelon form)

行簡約階段形とは、以下の条件をすべて満たす行列のこと。

標準形とも。

行階段形である
すべての主成分1
主成分のあるは、主成分以外は0

(solution)を求めた多変数線形方程式行列で表現すると行簡約階段形

詳しい求め方は、後述する(TODO)で説明する。

{x+2y+3z=4x+y+2z=3    {x+2y+3z=41y+2z=1(下の式から上の式を引く)    {x+2y+3z=4y+(2)z=1(下の式を両辺1倍する)    {x+7z=2y+(2)z=3(上の式から下の式を2倍して引く)

よりパラメータ表示(parametrization)する。
aRパラメータ(parameter)として、z=aとすれば、

{x=27ay=3+2az=a

となる。

ここで、最後の式変形後の方程式行列で表現すると、

(107012)(xyz)=(23)

ここで左辺の行列を見ると、これは行簡約階段形だ。

行基本変形(elementary row operation)

ここで、上記のような多変数一次線形方程式に対してえた操作をまとめて行基本変形と呼ぶ。

行基本変形とは、以下の3つの行列に対する操作である。

1. ijを入れ替える。

例えば、i=2, j=3を選択して、

(11121314212223243132333441424344)(11121314313233342122232441424344)

これは一般に、行列An×mに対して、以下の行列を左から掛けることと同義である。

Pi,jn×n=def(1101|1||||1|10||1||||1)ijij

2. iλ倍する。(λR,λ0)

例えば、i=2, λ=10を選択して、

(11121314212223243132333441424344)(111213142102202302403132333441424344)

これは一般に、An×mに対して、以下の行列を左から掛けることと同義である。

Pi(λ)n×n=def(11λ|1||1)ii

3. ijλ倍したものを加える。(λR,λ0)

例えば、i=3, j=2, λ=100を選択して、

(11121314212223243132333441424344)(1112131421222324213122322333243441424344)

これは一般に、行列An×mに対して、以下の行列を左から掛けることと同義である。

Pi,j(λ)n×n=def(1λ1|1|1||1)ij

基本行列(elementary matrix)

基本行列とは、上記で定義したPi,jPi(λ)、そしてPi,j(λ)のこと。
基本行列と呼ばないのは、仮に基本行列を同様に定義したとしてもまったく同様の行列になるからだ。

系: 線形方程式くことは、行列行基本変形を任意の回数って行簡約階段形に変形することである

線形方程式行列での表現をうと、各がそれぞれ一つの変数xjに対応することになる。ここで、主成分の存在しないパラメータとすればが求まる。

基本行列逆行列

基本行列Pに対して、P1が次のように存在する。

Pi(λ)1=defPi(λ1)Pi,j1=defPi,jPi,j(λ)1=defPi,j(λ)

これらはすべて、行基本変形をもとに戻す行基本変形に対応する。そのことから、以下のような性質を持つことがすぐにわかる。

  • PP1=I
  • P1P=I
  • (P1)1=P

行基本変形による同値関係(equivalence relation)の定義

行列A行基本変形を何回かってBが得られるとき、ABという二項関係(binary relation)を定義すると、これは同値関係になる。

言い換えると、基本行列のSEQ(P0,P1,,Pn1)であって、B=P0P1Pn1Aであるものが存在するとき、かつそのときに限りABであると定義する。

証明

a. 反射律(reflexivity): AA

空列(null sequence)が対応する。A=Aであるため、AA

b. 対称律(symmetricity): AB    BA
AからBにする際の行基本変形を、反転(reverse)させてから、各操作を逆操作(基本行列逆行列)に換えると、BからAへの行基本変形になる。

基本行列で言い換えると、

  • B=P0P1Pp1A

としたとき、

  • A=Pp11P11P01B

なので、BAとなる。

c. 推移律(transitivity): ABBCAC
AからBBからCへの操作をそのまま連結するとAからCへの操作になる。

基本行列で言い換えると、

  • B=P0P1Pp1A
  • C=Q0Q1Qq1B

としたとき、

C=Q0Q1Qq1(P0P1Pp1A)=(Q0Q1Qq1P0P1Pp1)A()

(Q0,Q1,,Qq1,P0,P1,,Pp1)基本行列であるから、AC

簡約化(matrix reduction)

簡約化とは、行列行基本変形によって行簡約階段形に変形することだ。もう少し形式的に言うなら、与えられた行列Aに対して、B=P0P1Pp1Aであるような基本行列P行簡約階段形B(tuple)を提示すること、ということ。

A簡約化する」というのを、「基本行列P0,P1,Pp1であって、PP0P1Pp1と定義して、PA=Xなるものを選ぶ」を意味するものとする。変数P,pQ,qであったりする場合もある。また、Pp11P1P0を考えると、これはP1である。

Pi1はTODOより常に存在する。

また、同様の用語として、上三角行列(upper triangular matrix)を目指すことを上三角化(upper triangularization)と呼ぶことにする。

ガウスの消去法(Gaussian elimination)

ガウスの消去法は、任意の行列簡約化するアルゴリズム(algorithm)だ。

前進消去(forward elimination)後退代入(back substitution)の2つのパートからなる。

ここではそれぞれの概要を説明する。厳密なアルゴリズムに関しては、以下のアニメーションを、数値を変えながら試してほしい。

前進消去

前進消去では、上三角行列かつ、主成分1であることを目指す。同時に、枢軸選択(pivotting)すうじくせんたくという、見ている要素0であった場合に別のと交換する (Pi,jに対応する) をすることによって、が自動的に下にく。

前進消去の終了時点で得られた主成分は、最終的に得られる行簡約階段形主成分となる。

後退代入

後退代入では、前進消去で決定した主成分をすべてを、上向きに探索する。そして、それぞれについて、前進消去と同じように、打ち消すように Pi,j(λ)う。やっていることはほぼ同じである。

後退代入う理由について

後退代入う理由、もしくは、前進消去上三角行列を分ける理由について。単に行簡約階段形を得るだけなら、前進消去の時点で、後ろ向きにも削除をえば、アルゴリズムはシンプルになる。ガウス・ジョルダンの消去法(Gauss-Jordan elimination)は、そのような実装のバリエーションを指すことがある。

しかし、わざわざ後退代入として分けるのは、計算回数を抑えるためだ。実際、アニメーションを見てもらうと、後退代入の際には、これまで調べた主成分に関しては0だとわかっているので、処理をしなくてすむ。

ガウスの消去法計算量(computation complexitiy)

加算(addition)乗算(multiplication)の回数がどれくらい起こるか、という計算量を考える。n×m行列に対してガウスの消去法うとする。それぞれのn,mについて最悪でどれくらいになるかを考える。
これは最悪Θ(min{n,m}nm)=Θ((n+m)nm)になる。

A=(122423152058)

上記の行列に対してガウスの消去法う、以下の例を見る。

(122423152058)(122401332058)(P1,2(2))(122401330490)(P1,3(2))(122401330490)(P2(1))(1224013300312)(P2,3(4))(122401330014)(P3(13))(120401330014)(P3,1(2))(120401090014)(P3,2(3))(1001401090014)(P2,1(2))

以上より、

P2,1(2)P3,2(3)P3,1(2)P3(13)P2,3(4)P2(1)P1,3(2)P1,2(2)A=(1001401090014)

左辺の基本行列行列の積を計算すると、

(51034343124313)

定理: 任意の行列は、行基本変形によって行簡約階段形に変形することが可能。

ガウスの消去法がそのまま構築による証明となる。

ガウス・ジョルダンの消去法

ガウスの消去法の中でも少しだけ触れたが、ガウス・ジョルダンの消去法の定義はいくつかの文献でゆらぎがある。ただ、かんたんにまとめると、ガウス・ジョルダンの消去法ガウスの消去法アルゴリズムの方針を利用して、行基本変形列基本変形(elementary column operation)によって行簡約階段形上三角行列に変形すること、もしくはそのアイデアのことを指す。

そのアイデアというのはつまり、左上から順に主成分を決定していくことである。

定理: 任意の行列について、行基本変形によって得られる行簡約階段形は一意である。

この定理に明確に言及しているのを見かける機会は少ないかもしれないが、今後の各種定義がwell-defined(well-defined)であるかどうかはこの定理による部分が多い。

証明

行列Aが異なる基本行列によって簡約化されたとする。

  • P0P1Pp1A=K
  • Q0Q1Qq1A=K

ということになる。K=Kを示せばよい。

まず、

  • A=Pp11P11P01K
  • A=Qq11Q11Q01K

と変形できる。つまり、Pp11P11P01K=Qq11Q11Q01Kとなるが、更に変形して、

K=P0P1Pp1Qq11Q11Q01K

となる。F=P0P1Pp1Qq11Q11Q01と置く。K=FK

F(Q0Q1Qq1Pp11P11P01)=Iであるから、F正則行列だ。つまり、がない。この性質をこのあと用いる。

さて、ここからは、行列同士の積の定義と同様の表記法をして、KのみからFKが決定できることを示す。

K=FKの掛け算を以下のように表す。

KFK

決定されていない場所を?、任意の値がありうる場所をで表記したのが以下だ。

(0100000100000010000000)=KF=(????????????????)(????????????????????????????)=K

3個の主成分である場合を例示している。なお、Kの左側と下側の0個以上の任意の数がそれぞれあり得る。また、(アスタリスク)のあるも同様に0個以上の任意の数だ。

Kを左のから決定していく。

1ブロック目 (最初に0以上続く)

まずはなので、Kの1目も0のみである。Fについては何も決定しない。

(0100000100000010000000)=KF=(????????????????)(0??????0??????0??????0??????)=K

2ブロック目 (最初の主成分を含む)

(0100000100000010000000)=KF=(????????????????)(0!?????0??????0??????0??????)=K

!で表した要素について、この値は1のみがありうる。
まず、0だとしたら、Fの1目がすべて0となってしまう。
そして、行簡約階段形の条件より1と決定できる。行簡約階段形であるため、その下も0だと決定できる。


(0100000100000010000000)=KF=(!???????????????)(01?????00?????00?????00?????)=K

!で表したF要素について、1×!+0×?+0×?+0×?=1を満たす必要がある。
よって、この値は1のみがありうる。


(0100000100000010000000)=KF=(1???!???!???!???)(01?????00?????00?????00?????)=K

!で表したFのすべての要素について、1×!+0×?+0×?+0×?=0を満たす必要がある。
よって、この値は0のみがありうる。


(0100000100000010000000)=KF=(1???0???0???0???)(01?????00?????00?????00?????)=K

3ブロック目 (0以上続く、1目まで任意の値を含む)

このブロックは、一般化すると、1ブロック目と同一だと捉えらる。

(0100000100000010000000)=KF=(1???0???0???0???)(01????000????000????000????)=K

Fの1目が決定しているため、Kと同一のであると決定する。
K側のは、Kと同様の値であるとする。

4ブロック目 (2個目の主成分を含む)

このブロックは、一般化すると、2ブロック目と同一だと捉えらる。

(0100000100000010000000)=KF=(1???0???0???0???)(010???0001???0000???0000???)=K

2ブロック目と同様に、Fの2目がすべて0になってはいけないこと、行列の積による等式から1であることが決定し、行簡約階段形であることから、他の要素0であることが決定する。


(0100000100000010000000)=KF=(10??01??00??00??)(010???0001???0000???0000???)=K

Fについても、同様に2目とそれ以外でそれぞれ立式すると、10に決定する。

終了時

のこりは同様に、ということになる。

(0100000100000010000000)=KF=(100?010?001?000?)(0100000100000010000000)=K

これにより、F=Fが示された。

上記は具体的なものしか取り扱っていないが、形式的な議論が見える範囲で記述するように心がけた。

なお、Fは上記のように決定しないこともある。数より主成分が少ない場合がそうだ。これは、下のに関して行基本変形を追加でいくらやっても良い、その自由度(degree of freedom)から来ている。なお、この決定されない数はそのまま自由度の定義として使える。

定理: 正則行列ならば正方行列である。

証明

An×mBm×n=InBm×nAn×m=Im

としておく。

A簡約化してPn×nAn×m=Xn×m、両辺に右からBを乗じてPAB=XBPAB=P(AB)=PI=Pより、P=XBとなる。
PP1=Iであるので、Pを含まない。
ここで、もしXを含むと、Pを持つことになるが、上記に矛盾するので、Xを含まない。
を含まない行簡約階段形対角成分(main diagonal)1で、それ以外が0のもので、Xn×mは横長か正方行列(nm)である。

また、B簡約化してQm×mBm×n=Ym×nとする。
QB=Y、両辺に右からAを乗じてQ=YAとなる。Qも同様の議論でを含まないので、Ym×nも含まない。よって、Yは横長か正方行列(mn)である。

よってn=m

系: 正則行列基本行列すると単位行列(identity matrix)となる。

正方行列かつ行簡約階段形であって、を含まないものは単位行列のみであるから。

系: 任意の正則行列基本行列行列の積で表わせる。

A正則行列とする。

証明

BA=IなるBが存在する。B簡約化してPB=Iとなる。両辺に右からAをかけると、P(BA)=A、よってP=AA=P0P1Pp1となる。

行列実数(real)の性質の相違

  1. 一般にABBAAB=BAならAB可換(commutative)である、という。
    例えば対称行列(symmetrix matrix)同士は常に可換である。
  2. AO,BOであってもAB=Oとなりうる。このとき、AB零因子(zero divisor)という。例:
(1122)(1111)=(0000)
  1. AOであってもA1が存在する(正則行列である)とは限らない。

行列のランク

任意の行列Aに関する行列のランクを、A簡約化してPA=Xになるとして、X主成分の数として定義する。

この定義はTODOによってwell-definedである。(Pのとり方によらない)

行列のランクをrankAと書く。

定理: P基本行列なら、rankPB=rankB

証明

PB簡約化QPB=Xを考えると、QPがそのままB簡約化になっている。
よって、PBB行列のランクはどちらもXでないの個数として一致する。

系: A正則行列なら、rankAB=rankB

証明

TODOよりA=P0P1Pp1と表せるから、
rankAB=rankP0P1Pp1B、TODOをp回適用して、rankAB=rankB

定理: ARn×nについて。A正則行列    rankA=n

証明

はTODOによりすぐ。

について。
rankA=nなのでA簡約化するとPA=Iとなる。PA1である。

定理: k個のを含む行列An×mについて、rankAnk

証明

ガウスの消去法を考えると、はそのまま簡約化しても残ることになる。
よって、行簡約階段形には、k個は少なくともが含まれることになる。

定理: A正則行列でなければ、AB正則行列ではない。

今後に議論するより多くの行列のランクの性質からすぐにわかることなのだが、ここでは一応別の方法で示す。

証明

A簡約化してPA=Xとする。A=P1Xとなる。

rankAB=rankP1XB(A=P1Xを代入)=rankXB(TODOより)

ここで、A正則行列でないから、Xを含む。XBも同様に含む。TODOより、rankXB<n。よって、rankAB<nであるが、TODOよりAB正則行列ではない。

線形方程式の求め方

線形方程式とは一次の連立方程式(system of equations)のこと。n変数m連立であるとすると、変数x=(x0x1xn1)として、An×mx=bと書ける。

b=0の場合、その線形方程式斉次である、という。

線形方程式ガウスの消去法を使ってくことが可能。

まず、(Ab)という行列を考える。これを上記の線形方程式に対する拡大行列(augmented matrix)と呼ぶ。

(Ab)に対する行基本変形は、もとの連立方程式への同値変形と同一視(identify)できる。

そこで、(Ab)ガウスの消去法する。それを、(Ab)(Ab)とする。たとえば以下のような形をしている。

(1000100000000)

ここで、もし最右だけ0でない、つまり、上の例で言う最後ののアスタリスクが0でない場合は、がない。

rankA<rank(Ab)ならなし、ということだ。
ここから、線形方程式の存在の必要十分条件は、rankA=rank(Ab)であることがわかる。

逆にそうでない場合はが必ず存在する。

が一つの変数に対応している。
主成分がないをそれぞれ自由変数を割り当てて、主成分があるについて、主成分以外の(term)を移すと一般が得られる。

また、斉次線形方程式の場合は、常にが存在する。斉次なら常にrankA=rank(Ab)=rank(A0)であるからだ。

自由度

が存在する線形方程式An×mx=b自由度を、これをいた際の、一般の自由変数の(最小)数として定義する。

イメージとしては、自由度0なら点、1なら線、2なら平面のようになる。TODO

自由度は、A簡約化した際のでないの数、つまりmrankAと等しくなる。