行列やベクトルを含んだ演算を行なう上での重要な考え方
∼「逆行列の補題定理」の証明を例として∼
筑波大学 生命環境学群 生物資源学類3年次 環境工学コース 流域管理研究室 山崎一磨 2012/02/20公開
2012/02/15の流域研のゼミで山崎が発表した内容のまとめ。
行列やベクトルが入り混じってる計算をするときには,「ある文字式の『実体』が何者であるのかを常に意 識する』——この態度が重要であることを説く。これがメイン。それを説いた上で,「そうすると,複雑な公 式も簡単に証明できちゃうのですよ,奥さん」と話を展開する。ここで例として使われる「逆行列の補題定 理」の証明は,あくまでオマケである。
1 準備
1.1 行列の計算規則
(a)行列の積
行列Aに対して行列Bを右からかけるとき,Aの列数とBの行数が一致していないと,そもそも積は定義 できない。そして,積の結果は,(Aの行数× Bの列数)行列になる。すなわち:
A B = C
(m × k)(k × n) (m × n) ← (行の数×列の数)
(b)行列の分配法則
行列A, B, Cについて,次の等式が成り立つ:
(A + B)C = AC + AB (1.1)
(c)スカラーは前に出せる
行列A, Bおよびスカラーxについて,次の等式が成り立つ:
A(xB) = xAB (1.2)
(d)スカラーでくくれる
行列Aおよびスカラーx, x′について,次の等式が成り立つ:
xA + x′A = (x + x′)A (1.3)
1.2 特別な行列の定義
逆行列
n次正方行列Aに対して,
AA−1 = A−1A = E (Eはn次の単位行列) これが成り立つような行列A−1のことを,Aの逆行列とよぶ。
転置行列
ある行列Aについて,行と列を入れ替えた行列をAの転置行列とよぶ。 転置行列は,元の行列の左上にtをつけることで表現する。
たとえば,Aが次のような2次正方行列であるとする:
A =(a b c d )
このとき,tAは,Aの1行目を第1列として,Aの2行目を第2列とした次のような行列になる:
tA =(a cb d )
ここで,n次列ベクトルを(n × 1)行列であると見なせば,列ベクトルについて転置を行うこともできる。 たとえば,bを次のような2次の列ベクトルであるとする:
b=(b1 b2 )
このとき,tbは,列を行に持っていくことで,次のようになる:
tb
=(b1 b2) すなわち,列ベクトルを転置すると行ベクトルになる。
◦
これ以降,このテキストの中では,
• A, B, Cはn次正方行列であるとする。
• b, cはn次列ベクトルであるとする。
• x, x′はスカラーであるとする。
また,適宜,n次列ベクトルを「(n × 1)行列」と見なし,n次行ベクトルを「(1 × n)行列」と見なす。
2 重要な考え方
行列やベクトルを含んだ演算を行なう上で,1つの重要な考え方がある。
それは「ある文字式の『実体』が何者なのかを常に意識すること」である。どういうことか。
たとえば,「A」とは何だろう? ——何って,n次正方行列だ。さっきそう定義した。 では,「b」とは何だろう? ——何って,n次列ベクトルだ。これもさっき定義した。
それでは,「Ab」とは何だろうか?
Aは行列,bはベクトル,では,その積は何か? 行列か,ベクトルか,はたまたスカラーか?
……これはベクトルである。n次列ベクトルである。
実際,bを(n × 1)行列と見なせば,行列の計算規則(a)から,
Ab → (n × n行列) (n × 1行列) → (n × 1行列) (2.1)
「Ab」は,行列とベクトルから構成されるけど,それらの積は,実体としてベクトルなのである。
同様に,色々と考えてみよう。
btcはどうだろうか? 列ベクトルと行ベクトルとの積である。
……これは行列である。n次正方行列である。
実際,bを(n × 1)行列,tcを(1 × n)行列と見なせば,
btc → (n × 1行列) (1 × n行列) → (n × n行列) (2.2)
では,tc bはどうだろうか? 行ベクトルと列ベクトルとの積である。
……これはスカラーである。 実際*1,
tc b
→ (1 × n行列) (n × 1行列) → (1 × 1行列) → スカラー (2.3)
では,ABはどうだろうか。正方行列と正方行列との積である。
……これは行列である。n次正方行列である。 実際,
AB → (n × n行列) (n × n行列) → (n × n行列) (2.4)
では,tc btcはどうだろうか。行ベクトルと列ベクトルと行ベクトルとの積である。
……これはベクトルである。n次行ベクトルである。実際,式(2.2)を使って,
tc btc
→ (1 × n行列) (n × n行列) → (1 × n行列)
◦
こういう感じである。
行列やベクトルが複数個ふくまれる文字式が,実体としては何なのか。上のように,行列の積の規則を手が かりにしてそれを考える。あんまり大したことのように感じないかも知れないが,この考え方は,行列やベク トルが含まれる計算をする上での強力な武器になるのだ。
次の例を通して,それを確かめてみよう。
3 「逆行列の補題定理」の証明
次の公式を逆行列の補題定理と呼ぶ:
(A + btc)−1= A−1−A−1b
tc
A−1
1 +tcA−1b (3.1)
(ただし,A+ btcが逆行列を持つこと,および,tcA−1bが−1にならないことが条件)
◦
実を言うと,私は,この公式の使いどころをよく知らない。重要性もよく知らない。ググった感じ,信号処 理とかノイズ除去とかの工学に踏み入っていくと,どこかで使うようだ。
しかし,ここで見たいのは,「割りと複雑に見えるこの公式も,上の考え方を持っていれば意外とすんなり 証明できること」だけである。ということで,この公式の使いどころや重要性にまでは立ち入らない。
◦
さて,「実体を意識する」の観点に従って,式(3.1)の中にある文字式の実体を確かめてみよう:
左辺の「A + btc」。Aはn次正方行列である。では,「btc」は何か? 式(2.2)より,こいつの実体はn次正 方行列である。ということは,この部分は,n次正方行列とn次正方行列の和であり,結局,実体としてはn 次正方行列である。左辺は,この行列A + btcの逆行列であるが,n次正方行列であることには変わりない。 左辺はn次正方行列である。
次に右辺。
第1項のA−1はn次正方行列で問題ない。
第2項の分子の「A−1btcA−1」はどうだろうか。真ん中の「btc」の実体は,式(2.2)より,n次正方行列で ある。すると,この文字式はn次正方行列とn次正方行列とn次正方行列との積であり,式(2.4)より,実体 としてはn次正方行列である。では,分母にある「tcA−1b」はどうだろうか。「A−1b」の実体は,式(2.1)よ り,n次の列ベクトルである。。すると,この文字式はn次の行ベクトルとn次の列ベクトルとの積であり,
式(2.3)より,実体としてはスカラーである。結局,第2項は,ごちゃごちゃしているが全体としては結局の
ところn次正方行列である。
従って,第1項も第2項もn次正方行列であり,その和としての右辺もn次正方行列である。
以上から,式(3.1)は,きちんと,
n次正方行列 = n次正方行列 という形になっていることがわかる。OK。
◦
それでは証明である。
式(3.1)の両辺に行列A + btcを右から*2かける。すると,左辺は,逆行列の定義より単位行列Eとなる。 ここで,右辺も,同じく単位行列Eとなれば式(3.1)の成立が証明される。2つの式に同じ操作を施した結果 が等しくなるのは,元々が等しかったからだと言えるから。
従って,ここからは,次の式が単位行列になることを確かめる作業となる。 (
A−1−A−1b
tc
A−1 1 +tcA−1b
)
(A + btc) (3.2)
◦
まず,「準備」の項で確認した行列の計算規則(b)を使う。分配法則である。 式(3.2)について,A + btcを1つの行列だと見なして分配すると,
A−1(A + btc) − ( A−1b
tc
A−1 1 +tcA−1b
)
(A + btc)
こんどは,A + btcのうち,Aとbtcとをそれぞれ別の行列とみなし,第1項・第2項でそれぞれ分配法則 を使う。第2項の1/(1 +tcA−1b)は,くくっておく:
E + A−1btc− 1 1 +tcA−1b
{A−1btc+ A−1btcA−1btc} (3.3)
さて,複雑に見えるが,あと3手である。
キーは,いちばん後ろの「A−1btcA−1btc」と,まだ使っていない行列の計算規則の残りの2つ,そして,
「実体を意識しろ」である。ここからの展開を,少し考えてみてほしい...
◦
それでは,証明を仕上げよう。
注目するべきは「A−1btcA−1btc」である。この文字式の実体はn次正方行列である(確かめてみてくださ い)。ここで,この式の3文字目・4文字目・5文字目(「tcA−1b」)だけに注目してみよう。上で見たよう,n 次正方行列とn次列ベクトルとの積(「A−1b」)はn次列ベクトルである。そして,n次行ベクトルとn次 列ベクトルとの積はスカラーであった! つまり,この部分だけを見れば,これはスカラーなのだ!!。
従って,ここで,行列の計算規則(c)より,このスカラーの部分を前に出すことができる!! A−1b(tcA−1b)tc = (tcA−1b)A−1btc
文字だけを見ると「ほんとにそんなことやっていいのか?」と思う変形であるが,実体を考えてみれば,( ) の中の文字式はスカラーなのだ。スカラーである限り,行列の計算規則(c)より,このような変形が可能であ ることが保証されている。あと2手。
この式を,式(3.3)に代入すると,{ }の中は次の左辺のようになり,ここで,行列の計算規則(d)を用いる と右辺への変形が可能である:
{A−1btc+ (tcA−1b)A−1btc} = {(1 +tcA−1b)A−1btc}
ラスト1手。 これにより,式(3.3)は次の式の1行目のようになる。ここで,スカラー同士が約分され2行 目のようになる。さらに,行列同士が打ち消え零行列となり,最後に単位行列Eだけが残される!!:
E + A−1btc− 1 1 +tcA−1b
{(1 +tcA−1b)A−1btc}
=E + A−1btc− A−1btc
=E
式(3.1)の両辺に(右から)行列A + btcをかけることで,両辺が単位行列になり等しくなることが確かめ られた。従って,これにより,逆行列の補題定理の証明が完了した。
◦
<参考文献 平岡 和幸・堀 玄,プログラミングのための線形代数,オーム社,第1版,p63-65 >
以上