コンテンツにスキップ

行列式

行列式の導入

行列式は正方行列に対して定まる特徴的な量で、その正方行列の可逆性の判定や正方行列が定める線形変換による体積の拡大率に応用される重要な量である。

実は2次正方行列の行列式はすでに登場していて、逆行列の公式の係数の分母がそれである。 つまり2次正方行列𝐴=(𝑎𝑏𝑐𝑑)の行列式の値は

det𝐴=det(𝑎𝑏𝑐𝑑)=|𝑎𝑏𝑐𝑑|=𝑎𝑑−𝑏𝑐

である。 このように行列式を表すためにはdetを使ったり、行列を表すのに丸括弧を使う代わりに縦棒を使ったりして記述する。 この行列式の値が0でないことが逆行列を持つための必要十分条件になるのであった。 また、行列𝐴を構成する2つのベクトル(𝑎𝑐)と(𝑏𝑑)のなす平行四辺形の面積を考えると、|𝑎𝑑−𝑏𝑐|なので行列式の絶対値になっている。 また行列式の計算規則について、 2次の縦ベクトル𝒂,𝒂′,𝒃,𝒃′とスカラー𝑐,𝑐′に対して多重線形性と呼ばれる等式

det(𝑐𝒂+𝑐′𝒂′𝒃)=𝑐det(𝒂𝒃)+𝑐′det(𝒂′𝒃),det(𝒂𝑐𝒃+𝑐′𝒃′)=𝑐det(𝒂𝒃)+𝑐′det(𝒂𝒃′)

が成り立つことと、 二つの2次正方行列𝐴, 𝐵に対して積の行列式の等式

det(𝐴𝐵)=det𝐴det𝐵

が成り立っていることがわかる。 これらは愚直に計算すればわかるが後で一般化された形で証明するので詳細は省略する。

以上に挙げた性質を3次以上の行列に拡張するが、その場合の行列式の定義はやや複雑で、置換を使う方法や余因子展開による方法、基本変形による方法などがある。 どの方法でも定義される行列式の値は同一なので、計算する場面に応じてどの方法を使うか選択したり組み合わせて使うことになる。 本テキストでは標準的な線形代数の教科書の流れに従って、まず置換を使う方法で行列式を定義してから、それが余因子展開を満たすことを示し基本変形による行列式の計算方法を紹介する。 そのために次節では置換というものについて定義する。

置換と符号

𝑁=1,2,3,…として、1,…,𝑁の並べ替えを𝑁次の置換という。 より詳しくは𝑁次の置換𝑠は𝑁個の元の集合{1,…,𝑁}から{1,…,𝑁}への写像であって逆写像𝑠−1を持つもの、 つまり各𝑖=1,…,𝑁に対して𝑠(𝑖)=1,…,𝑁がただ一つ対応し𝑗=1,…,𝑁に対して𝑠(𝑖)=𝑗となる𝑖がただ一つ対応するので𝑖=𝑠−1(𝑗)とする。 𝑁次の置換は1,…,𝑁の並べ替えなので𝑁!個あることに注意して、 𝑁次の置換全体の集合を𝑆𝑁とおく。 置換𝑠を表現するのにしばしば上に1,…,𝑁を並べて下に𝑠(1),…,𝑠(𝑁)を並べてそれらを丸括弧で括るという記法が採用され、上半分は1,…,𝑁で固定されるのでしばしば省略される。 つまり、

𝑠=(1…𝑁𝑠(1)…𝑠(𝑁))=(𝑠(1)…𝑠(𝑁))

である。 行列の記法と紛らわしいが文脈で判断する。 二つの置換𝑠と𝑡に対して置換𝑠をしてから置換𝑡をするという合成置換を𝑡𝑠と書く。 (𝑡𝑠)(𝑖)=𝑡(𝑠(𝑖))である。 また、1,…,𝑁をそのままの並びにする置換を恒等置換といいid𝑁やidで表す。

id𝑁=(1…𝑁1…𝑁)

である。 逆写像𝑠−1も置換であり置換𝑠の逆置換という。 𝑠𝑠−1=𝑠−1𝑠=idに注意する。

𝑖≠𝑗を満たす𝑖,𝑗=1,…,𝑁に対して、𝑖と𝑗を入れ替えてそれ以外はそのままにする置換を𝑖と𝑗の互換といい(𝑖𝑗)と表す。 つまり、

(𝑖𝑗)=(…𝑖…𝑗……𝑗…𝑖…)

である。 この互換は今までの内容で言うと、二つの行を入れ替えるという行基本変形に対応する。

任意の置換はいくつかの互換の合成として表される。

命題 1

𝑠を𝑁次の置換とする時、𝑠は𝑁−1個以下の互換の合成として表される。 ただし、0個の互換の合成は恒等置換idである。

証明

𝑁に関する数学的帰納法で証明する。 𝑁=1の時は𝑆1={id}なので成立する。 𝑁で成立する時、𝑁+1次の置換𝑠について考える。 𝑠(𝑁+1)=𝑁+1の時は𝑠を1,…,𝑁に制限すると𝑁次の置換になっているので𝑁−1個以下の互換の合成として表される。 𝑠(𝑁+1)≠𝑁+1の時は𝑖=𝑠(𝑁+1)とすると𝑖=1,…,𝑁であり、𝑠に𝑖と𝑁+1の互換をすると𝑁+1を𝑁+1に移すようになるので𝑁−1個以下の互換の合成として表され、従って𝑠は𝑁個以下の互換の合成として表される。 以上より証明された。

この命題において𝑁−1個以下の部分はあまり重要でなく、 重要なのは𝑠∈𝑆𝑁に対して𝑠を互換の合成として表した時の互換の個数の最小値𝑛(𝑠)が定まることである。 さらに𝑛(𝑠)が偶数の時𝑠は偶置換といい、奇数の時奇置換と呼ぶことにする。 個数𝑛=0,…,𝑁−1に対して𝑛(𝑠)=𝑛となる𝑠∈𝑆𝑁全体を𝑆𝑁(𝑛)と表し、 偶置換全体を𝑆𝑁+で奇置換全体を𝑆𝑁−でそれぞれ表す。 自明なこととして𝑆𝑁+∩𝑆𝑁−=∅と𝑆𝑁+∪𝑆𝑁−=𝑆𝑁が成り立つことがある。

例 2

  • 𝑁=1の時は

    𝑆1=𝑆1(0)={(1)}.
  • 𝑁=2の時は

    𝑆2={(12),(21)},𝑆2(0)={(12)},𝑆2(1)={(21)}.
  • 𝑁=3の時は

    𝑆3={(123),(213),(132),(321),(231),(312)},𝑆3(0)={(123)},𝑆3(1)={(213),(132),(321)},𝑆3(2)={(231),(312)}.

すぐわかることとして𝑆𝑁(0)={id𝑁}である。

以降では偶置換に対して正の符号を奇置換に対して負の符号を割り当てたいが、今の互換の個数の最小値に基づく定義では扱いづらいので別の方法でいったん符号を定義する。

定義 3 (置換の符号)

𝑁≥2に対して𝑁次の置換𝑠の符号sgn(𝑠)を以下で定義する。

sgn(𝑠)=∏𝑖<𝑗𝑠(𝑗)−𝑠(𝑖)𝑗−𝑖.

ここで∏𝑖<𝑗𝑠(𝑗)−𝑠(𝑖)𝑗−𝑖は𝑖,𝑗=1,…,𝑁が𝑖<𝑗を満たしながら動く時の実数𝑠(𝑗)−𝑠(𝑖)𝑗−𝑖すべての積である。 そのため、sgn(𝑠)は実数値であるが、のちにすぐわかる通りsgn(𝑠)=±1しか取り得ない。 𝑁=1の時はsgn(id)=+1と定義する。

命題 4

任意の置換𝑠の符号sgn(𝑠)の値は+1または−1である。

証明

sgn(𝑠)2=1を示せばよい。 計算すると

sgn(𝑠)2=∏𝑖<𝑗𝑠(𝑗)−𝑠(𝑖)𝑗−𝑖∏𝑖<𝑗𝑠(𝑗)−𝑠(𝑖)𝑗−𝑖=∏𝑖<𝑗𝑠(𝑗)−𝑠(𝑖)𝑗−𝑖∏𝑖<𝑗𝑠(𝑖)−𝑠(𝑗)𝑖−𝑗=∏𝑖≠𝑗𝑠(𝑖)−𝑠(𝑗)𝑖−𝑗=∏𝑖≠𝑗(𝑠(𝑖)−𝑠(𝑗))∏𝑖≠𝑗(𝑖−𝑗).

ここで𝑠は置換より、𝑖,𝑗が𝑖≠𝑗を満たしながら動く時𝑠(𝑖),𝑠(𝑗)が𝑠(𝑖)≠𝑠(𝑗)を満たしながら動くので、

sgn(𝑠)2=∏𝑖≠𝑗(𝑖−𝑗)∏𝑖≠𝑗(𝑖−𝑗)=1.

よってsgn(𝑠)=±1である。

この符号の定義の利点は次の性質が証明しやすいことである。

命題 5

任意の二つの置換𝑠,𝑡に対してsgn(𝑡𝑠)=sgn(𝑡)sgn(𝑠)が成り立つ。

証明

計算すると

sgn(𝑡𝑠)=∏𝑖<𝑗𝑡(𝑠(𝑗))−𝑡(𝑠(𝑖))𝑗−𝑖=∏𝑖<𝑗𝑡(𝑠(𝑗))−𝑡(𝑠(𝑖))𝑠(𝑗)−𝑠(𝑖)𝑠(𝑗)−𝑠(𝑖)𝑗−𝑖=sgn(𝑠)∏𝑖<𝑗𝑡(𝑠(𝑗))−𝑡(𝑠(𝑖))𝑠(𝑗)−𝑠(𝑖)

ここで、

∏𝑖<𝑗𝑡(𝑠(𝑗))−𝑡(𝑠(𝑖))𝑠(𝑗)−𝑠(𝑖)=∏𝑖<𝑗,𝑠(𝑖)<𝑠(𝑗)𝑡(𝑠(𝑗))−𝑡(𝑠(𝑖))𝑠(𝑗)−𝑠(𝑖)∏𝑖<𝑗,𝑠(𝑖)>𝑠(𝑗)𝑡(𝑠(𝑗))−𝑡(𝑠(𝑖))𝑠(𝑗)−𝑠(𝑖)=∏𝑖<𝑗,𝑠(𝑖)<𝑠(𝑗)𝑡(𝑠(𝑗))−𝑡(𝑠(𝑖))𝑠(𝑗)−𝑠(𝑖)∏𝑖<𝑗,𝑠(𝑖)>𝑠(𝑗)𝑡(𝑠(𝑖))−𝑡(𝑠(𝑗))𝑠(𝑖)−𝑠(𝑗)=∏𝑖<𝑗,𝑠(𝑖)<𝑠(𝑗)𝑡(𝑠(𝑗))−𝑡(𝑠(𝑖))𝑠(𝑗)−𝑠(𝑖)∏𝑗<𝑖,𝑠(𝑗)>𝑠(𝑖)𝑡(𝑠(𝑗))−𝑡(𝑠(𝑖))𝑠(𝑗)−𝑠(𝑖)=∏𝑠(𝑖)<𝑠(𝑗)𝑡(𝑠(𝑗))−𝑡(𝑠(𝑖))𝑠(𝑗)−𝑠(𝑖)=∏𝑖<𝑗𝑡(𝑗)−𝑡(𝑖)𝑗−𝑖=sgn(𝑡)

なので、sgn(𝑡𝑠)=sgn(𝑡)sgn(𝑠)が従う。

注意 6

この命題から逆置換について sgn(𝑠)sgn(𝑠−1)=sgn(𝑠𝑠−1)=sgn(id)=∏𝑖<𝑗𝑗−𝑖𝑗−𝑖=+1 なので、sgn(𝑠−1)=sgn(𝑠)である。

さらに互換の符号は常に負である。

命題 7

𝑁≥2の時、互換𝑡の符号はsgn(𝑡)=−1である。

証明

𝑡=(12)のとき、

sgn(𝑡)=𝑡(2)−𝑡(1)2−1∏𝑗=3𝑁𝑡(𝑗)−𝑡(1)𝑗−1∏𝑗=3𝑁𝑡(𝑗)−𝑡(2)𝑗−2∏2<𝑖<𝑗𝑡(𝑗)−𝑡(𝑖)𝑗−𝑖=1−22−1∏𝑗=3𝑁𝑗−2𝑗−1∏𝑗=3𝑁𝑗−1𝑗−2=−1.

一般の互換𝑡=(𝑘𝑙)に対しては、(𝑙𝑘)=(𝑘𝑙)より𝑘<𝑙としてよく、置換𝑠を

𝑠={id(𝑘=1,𝑙=2),(2𝑙)(𝑘=1,𝑙>2),(2𝑙)(1𝑘)(𝑘>1)

とすると𝑡=𝑠−1(12)𝑠であるので、

sgn(𝑡)=sgn(𝑠−1)sgn((12))sgn(𝑠)=−1

となる。

以上のことから偶置換の符号は正で奇置換の符号は負であることがわかる。

置換による行列式

行列式は置換とその符号を用いて以下のように定義される。

定義 1 (行列式)

𝐾上の𝑁次正方行列𝐴=(𝑎𝑖𝑗)の行列式を以下で定義する。

det𝐴=|𝐴|=|𝑎11⋯𝑎1𝑁⋮⋱⋮𝑎𝑁1⋯𝑎𝑁𝑁|=∑𝑠∈𝑆𝑁sgn(𝑠)𝑎1𝑠(1)…𝑎𝑁𝑠(𝑁).

正確にはsgn(𝑠)は実数の±1として定義されたがこれを𝐾の±1と同一視して、 行列式は𝐾の元つまりスカラーとして定義する。

𝑁が小さいうちはこの定義によって直接行列式を定義することができる。

命題 2 (サラスの公式)

  • 1次正方行列(スカラー)の行列式は以下になる。

    |𝑎|=+𝑎.
  • 2次正方行列の行列式は以下になる。

    |𝑎𝑏𝑐𝑑|=+𝑎𝑑−𝑏𝑐.
  • 3次正方行列の行列式は以下になる。

    |𝑎𝑏𝑐𝑑𝑒𝑓𝑔ℎ𝑖|=+𝑎𝑒𝑖+𝑏𝑓𝑔+𝑐𝑑ℎ−𝑐𝑒𝑔−𝑏𝑑𝑖−𝑎𝑓ℎ.

これらの公式は行列の成分を斜めがけして方向によって符号を決めるという覚え方がある(サラスの方法)。 しかしながら𝑁が大きくなると置換の個数が𝑁!個あるため項数が爆発的に増えるのと、𝑁≥4では覚え方が通用しない。 そこで行列式が満たす性質をうまく使って効率よく計算する必要がある。

行列式の性質

重要な行列式の性質として以下が挙げられる。

命題 1 (転置)

𝑁次正方行列𝐴に対して、

det𝐴𝖳=det𝐴

が成り立つ。

証明

変形すると

det𝐴𝖳=∑𝑠∈𝑆𝑁sgn(𝑠)𝑎𝑠(1)1…𝑎𝑠(𝑁)𝑁=∑𝑠∈𝑆𝑁sgn(𝑠)𝑎1𝑠−1(1)…𝑎𝑁𝑠−1(𝑁)=∑𝑠∈𝑆𝑁sgn(𝑠−1)𝑎1𝑠(1)…𝑎𝑁𝑠(𝑁)=∑𝑠∈𝑆𝑁sgn(𝑠)𝑎1𝑠(1)…𝑎𝑁𝑠(𝑁)=det𝐴

である。

命題 2

第1行または第1列が第(1,1)成分を残して他がすべて零の行列の行列式について、

|𝑎110⋯0𝑎21𝑎22⋯𝑎2𝑁⋮⋮⋱⋮𝑎𝑁1𝑎𝑁2⋯𝑎𝑁𝑁|=|𝑎11𝑎12⋯𝑎1𝑁0𝑎22⋯𝑎2𝑁⋮⋮⋱⋮0𝑎𝑁2⋯𝑎𝑁𝑁|=𝑎11|𝑎22⋯𝑎2𝑁⋮⋱⋮𝑎𝑁2⋯𝑎𝑁𝑁|

が成り立つ。

証明

左辺の行列について示せば、中辺の行列はその転置なので前命題より行列式の値は等しい。 その左辺の行列の行列式について、置換𝑠∈𝑆𝑁に対して𝑠(1)≠1だと𝑎1𝑠(1)=0である。 よって、𝑠(1)=1であり行列式で𝑎1𝑠(1)=𝑎11がくくり出せて命題が従う。

この命題を繰り返し用いることで次の命題が従う。

命題 3 (三角行列の行列式)

三角行列の行列式は対角成分を掛け合わせることで得られる。 つまり

|𝑎11⋯𝑎1𝑁⋱⋮𝑎𝑁𝑁|=|𝑎11⋮⋱𝑎𝑁1⋯𝑎𝑁𝑁|=𝑎11…𝑎𝑁𝑁

が成り立つ。 特に単位行列について

det𝐼𝑁=1

である。

次の二つの命題は行列式の計算をする上で重要である。

命題 4 (多重線形性)

𝑁次の横ベクトル𝒂1,…,𝒂𝑁,𝒂1′,…,𝒂𝑁′とスカラー𝑐1,…,𝑐𝑁,𝑐1′,…,𝑐𝑁′に対して、

|⋮𝑐𝑖𝒂𝑖+𝑐𝑖′𝒂𝑖′⋮|=𝑐𝑖|⋮𝒂𝑖⋮|+𝑐𝑖′|⋮𝒂𝑖′⋮|

が成り立つ。 また、𝑁次の縦ベクトル𝒂1,…,𝒂𝑁,𝒂1′,…,𝒂𝑁′とスカラー𝑐1,…,𝑐𝑁,𝑐1′,…,𝑐𝑁′に対して、

|⋯𝑐𝑖𝒂𝑖+𝑐𝑖′𝒂𝑖′⋯|=𝑐𝑖|⋯𝒂𝑖⋯|+𝑐𝑖′|⋯𝒂𝑖′⋯|

が成り立つ。

証明

成分を設定して行列式の定義に従って計算するとすぐわかるので詳細は省略する。

命題 5 (交代性)

𝑁次の横ベクトル𝒂1,…,𝒂𝑁,𝒂と𝑖≠𝑗を満たす𝑖,𝑗=1,…,𝑁に対して

|⋮𝒂𝑗⋮𝒂𝑖⋮|=−|⋮𝒂𝑖⋮𝒂𝑗⋮|,|⋮𝒂⋮𝒂⋮|=0

が成り立つ。 また、𝑁次の縦ベクトル𝒂1,…,𝒂𝑁,𝒂と𝑖≠𝑗を満たす𝑖,𝑗=1,…,𝑁に対して

|⋯𝒂𝑗⋯𝒂𝑖⋯|=−|⋯𝒂𝑖⋯𝒂𝑗⋯|,|⋯𝒂⋯𝒂⋯|=0

が成り立つ。

この命題の一つ目の等式は行を交換したら行列式の符号が変わることを述べ、二つ目の等式は二つの行が同じだったら行列式は零であることを述べている。 一見すると二つ目の式は一つ目の特別な場合であるが、2=0となるような体に配慮して二つ目を先に示し、そのことを利用して一つ目を示す。

証明

転置すればよいので、前半部分だけ示す。 一つ目の等式を示すために𝐴=(𝑎𝑖,𝑗)𝑗=1,…,𝑁𝑖=1,…,𝑁は第𝑖行と第𝑗行が等しい、つまり𝑎𝑖𝑘=𝑎𝑗𝑘がすべての𝑘=1,…,𝑁に対して成り立つとすると、

det𝐴=det𝐴𝖳=∑𝑠∈𝑆𝑁sgn(𝑠)𝑎𝑠(1)1…𝑎𝑠(𝑁)𝑁=∑𝑠∈𝑆𝑁+𝑎𝑠(1)1…𝑎𝑠(𝑁)𝑁−∑𝑠∈𝑆𝑁−𝑎𝑠(1)1…𝑎𝑠(𝑁)𝑁.

ここで奇置換の方にだけ互換𝑡=(𝑖𝑗)の操作をすると、𝐴の仮定から

∑𝑠∈𝑆𝑁−𝑎𝑠(1)1…𝑎𝑠(𝑁)𝑁=∑𝑠∈𝑆𝑁−𝑎𝑡(𝑠(1))1…𝑎𝑡(𝑠(𝑁))𝑁=∑𝑠∈𝑆𝑁+𝑎𝑠(1)1…𝑎𝑠(𝑁)𝑁.

よってdet𝐴=0である。

二つ目を示すために第𝑖行と第𝑗行がともに𝒂𝑖+𝒂𝑗である行列の行列式を考えると多重線形性と先ほど示したことより、

|⋮𝒂𝑖+𝒂𝑗⋮𝒂𝑖+𝒂𝑗⋮|=|⋮𝒂𝑖⋮𝒂𝑖⋮|+|⋮𝒂𝑖⋮𝒂𝑗⋮|+|⋮𝒂𝑗⋮𝒂𝑖⋮|+|⋮𝒂𝑗⋮𝒂𝑗⋮|=|⋮𝒂𝑖⋮𝒂𝑗⋮|+|⋮𝒂𝑗⋮𝒂𝑖⋮|

でこれが0に等しいので、証明すべき等式が得られる。

命題 6 (積の行列式)

二つの𝑁次正方行列𝐴と𝐵に対して、

det(𝐴𝐵)=det𝐴det𝐵

が成り立つ。

証明

まず、積𝐴𝐵は成分を使って以下のように書くことができる。

𝐴𝐵=(𝑎11⋯𝑎1𝑁⋮⋱⋮𝑎𝑁1⋯𝑎𝑁𝑁)(𝒃1⋮𝒃𝑁)=(𝑎11𝒃1+…+𝑎1𝑁𝒃𝑁⋮𝑎𝑁1𝒃1+…+𝑎𝑁𝑁𝒃𝑁)

よって多重線形性より、

det(𝐴𝐵)=∑𝑗1=1𝑁…∑𝑗𝑁=1𝑁𝑎1𝑗1…𝑎𝑁𝑗𝑁|𝒃𝑗1⋮𝒃𝑗𝑁|

交代性より同じ行がある場合の行列式は0なので、

det(𝐴𝐵)=∑𝑠∈𝑆𝑁𝑎1𝑠(1)…𝑎𝑁𝑠(𝑁)|𝒃𝑠(1)⋮𝒃𝑠(𝑁)|

行を並べ替えて、

det(𝐴𝐵)=∑𝑠∈𝑆𝑁sgn(𝑠)𝑎1𝑠(1)…𝑎𝑁𝑠(𝑁)|𝒃1⋮𝒃𝑁|

よってdet(𝐴𝐵)=det𝐴det𝐵である。

余因子展開

𝑁次正方行列𝐴と𝑖,𝑗=1,…,𝑁に対して、𝐴の第𝑖行と第𝑗列を取り除いて得られる𝑁−1次正方行列の行列式を(−1)𝑖+𝑗倍した数を𝐴の(𝑖,𝑗)余因子という。 つまり、𝐴を

𝐴=(𝐴𝑈𝐿∗𝐴𝑈𝑅∗𝑎𝑖𝑗∗𝐴𝐿𝐿∗𝐴𝐿𝑅)

と区分けした時に

𝐴̃𝑖𝑗=(−1)𝑖+𝑗|𝐴𝑈𝐿𝐴𝑈𝑅𝐴𝐿𝐿𝐴𝐿𝑅|

を定義する。

元の行列𝐴の行列式は余因子を使って次のように表現される。

定理 1 (余因子展開)

𝑁次正方行列𝐴と𝑖,𝑗=1,…,𝑁に対して

det𝐴=𝑎𝑖1𝐴̃𝑖1+…+𝑎𝑖𝑁𝐴̃𝑖𝑁=𝑎1𝑗𝐴̃1𝑗+…+𝑎𝑁𝑗𝐴̃𝑁𝑗

が成り立つ。

この式の中で𝑖を使った式を第𝑖行についての余因子展開といい、𝑗を使った式を第𝑗列についての余因子展開という。

証明

第𝑖行についての余因子展開を示す。 第𝑖行を

(𝑎𝑖1𝑎𝑖2…𝑎𝑖𝑁)=𝑎𝑖1(10…0)+𝑎𝑖2(01…0)+𝑎𝑖𝑁(00…1)

と分解すると、多重線形性より示される。 列についての余因子展開は転置を取ればよい。

例 2

注意 3

余因子は逆行列とも結びつく。 まず、余因子を次のように並べて得られる行列

𝐴̃=(𝐴̃11⋯𝐴̃𝑁1⋮⋱⋮𝐴̃1𝑁⋯𝐴̃𝑁𝑁)

を𝐴の余因子行列という。 並べ方が転置を取ったようになっているので注意。

定理 4 (余因子行列と逆行列)

𝑁次正方行列𝐴とその余因子行列𝐴̃について

𝐴𝐴̃=𝐴̃𝐴=det(𝐴)𝐼𝑁

が成り立つ。 特に𝐴が可逆であることとdet𝐴≠0であることは同値であり、𝐴の逆行列は

𝐴−1=1det𝐴𝐴̃

で与えられる。

この定理は逆行列を持つための必要十分条件を与えて非常に重要であるが、 逆行列の計算という観点からは行列式の値の計算が大変なので基本変形の方が一般に効率が良い。

証明のために次の補題を用意する。

補題 5

𝐴を𝑁次正方行列、𝐴̃をその余因子行列として𝒃を𝑁次ベクトルとする。 この時、

𝐴̃𝒃=(det𝐴1,𝒃⋮det𝐴𝑁,𝒃)

が成り立つ。 ただし、𝐴𝑘,𝒃は行列𝐴=(𝒂1⋯𝒂𝑁)の第𝑘=1,…,𝑁列をベクトル𝒃で置き換えて得られる行列

𝐴𝑘,𝒃=(𝒂1…𝒂𝑘−1𝒃𝒂𝑘+1…𝒂𝑁)

である。

証明

ベクトル𝐴̃𝒃の第𝑘成分は

𝐴̃1𝑘𝑏1+…+𝐴̃𝑁𝑘𝑏𝑁

であり、これはdet𝐴𝑘,𝒃の第𝑘列についての余因子展開に一致する。

証明 (定理 4 の証明)

𝐴̃𝐴=det(𝐴)𝐼𝑁を示せば十分である。 𝐴̃𝐴の第(𝑖,𝑗)成分は、𝐴の第𝑗列を𝒂𝑗とすると、𝐴̃𝒂𝑗の第𝑖成分なので、補題 5 より、det𝐴𝑖,𝒂𝑗に等しい。 これは𝑗≠𝑖の時は同じ列が二つあるので0であり、𝑗=𝑖の時はdet𝐴に他ならない。 以上より証明される。

この節の最後に行列式を用いた連立一次方程式の解の公式を紹介する。

定理 6 (クラメルの公式)

𝐴を𝑁次正則行列つまり逆行列を持つとして、連立一次方程式

𝐴𝒙=𝒃

の一意な解𝒙=(𝑥1⋮𝑥𝑁)の成分𝑥𝑘は

𝑥𝑘=det𝐴𝑘,𝒃det𝐴

で与えられる。

証明

𝐴は逆行列を持ち、それは余因子行列を用いて𝐴=1det𝐴𝐴̃で与えられるので、解は𝒙=1det𝐴𝐴̃𝒃である。 よって後は補題 5 により計算される。

基本変形と行列式

行列の基本変形は基本行列との積を取ることと考えられることと基本行列の行列式は簡単な計算で

det𝑃𝑁(𝑖,𝑗)=−1,det𝑄𝑁(𝑖,𝑐)=𝑐,det𝑅𝑁(𝑖,𝑗,𝑐)=1

と求まることから、基本変形をすると行列式の値は次のように変化する。

  • 二つの行(または列)を入れ替えると行列式の符号が反転する。
  • ある行(または列)を定数𝑐∈𝐾倍すると行列式の値が𝑐倍になる。
  • ある行(または列)に、別の行(列)の定数倍を加えても行列式は変化しない。

基本変形して行列をより単純な形にすることで、行列式の計算をやりやすくすることができる。

例 1

また、基本変形をまとめて処理すると行列式の値は次のように変化する。

  • 置換𝑠に従っていくつかの行(または列)をまとめて入れ替えると行列式の値はsgn(𝑠)倍になる。
  • 𝑅個の行(または列)に𝑅次の正則行列𝐴を左からかけると行列式の値はdet𝐴倍になる。
  • ある𝐿個の行(または列)に、別の𝑅個の行(列)に𝐿×𝑅型の行列を左からかけたものを加えても行列式は変化しない。

ここで二つ目は正則行列が基本行列の積として表されることから正当化される。

例 2

種々の行列式

重要な行列式の公式として以下がある。

定理 1 (ヴァンデルモンドの行列式)

𝑎1,…,𝑎𝑁∈𝐾に対して、

|1𝑎1𝑎12⋯𝑎1𝑁−11𝑎2𝑎22⋯𝑎2𝑁−1⋮⋮⋱⋮1𝑎𝑁𝑎𝑁2⋯𝑎𝑁𝑁−1|=∏𝑖<𝑗(𝑎𝑗−𝑎𝑖)

が成り立つ。

証明

𝑁についての数学的帰納法で示す。 𝑁=1の時は両辺ともに1である。 𝑁−1次で成立する時、第(1,1)成分で第1行を掃き出すことで、

|1𝑎1𝑎12⋯𝑎1𝑁−11𝑎2𝑎22⋯𝑎2𝑁−1⋮⋮⋮⋱⋮1𝑎𝑁𝑎𝑁2⋯𝑎𝑁𝑁−1|=|1𝑎1𝑎12⋯𝑎1𝑁−10𝑎2−𝑎1𝑎22−𝑎12⋯𝑎2𝑁−1−𝑎1𝑁−1⋮⋮⋮⋱⋮0𝑎𝑁−𝑎1𝑎𝑁2−𝑎12⋯𝑎𝑁𝑁−1−𝑎1𝑁−1|=|𝑎2−𝑎1𝑎22−𝑎12⋯𝑎2𝑁−1−𝑎1𝑁−1⋮⋮⋱⋮𝑎𝑁−𝑎1𝑎𝑁2−𝑎12⋯𝑎𝑁𝑁−1−𝑎1𝑁−1|=(𝑎2−𝑎1)…(𝑎𝑁−𝑎1)|1𝑎2+𝑎1⋯𝑎2𝑁−2+𝑎2𝑁−3𝑎1+…+𝑎1𝑁−2⋮⋮⋱⋮1𝑎𝑁+𝑎1⋯𝑎𝑁𝑁−2+𝑎𝑁𝑁−3𝑎1+…+𝑎1𝑁−2|

ここで最右辺の行列式は𝑁−1次で、第𝑁−1列から第𝑁−2列の𝑎1倍を引き、第𝑁−2列から第𝑁−3列の𝑎1倍を引き、ということを続けると、

|1𝑎1𝑎12⋯𝑎1𝑁−11𝑎2𝑎22⋯𝑎2𝑁−1⋮⋮⋮⋱⋮1𝑎𝑁𝑎𝑁2⋯𝑎𝑁𝑁−1|=(𝑎2−𝑎1)…(𝑎𝑁−𝑎1)|1𝑎2⋯𝑎2𝑁−2⋮⋮⋱⋮1𝑎𝑁⋯𝑎𝑁𝑁−2|

よって、数学的帰納法の仮定より、

|1𝑎1𝑎12⋯𝑎1𝑁−11𝑎2𝑎22⋯𝑎2𝑁−1⋮⋮⋮⋱⋮1𝑎𝑁𝑎𝑁2⋯𝑎𝑁𝑁−1|=(𝑎2−𝑎1)…(𝑎𝑁−𝑎1)∏2≤𝑖<𝑗(𝑎𝑗−𝑎𝑖)=∏𝑖<𝑗(𝑎𝑗−𝑎𝑖)

を得る。

命題 2 (三重対角行列)

𝑎,𝑏,𝑐∈𝐾に対して𝑁次正方行列の行列式

𝐷𝑁=|𝑎𝑏0⋯0𝑐𝑎𝑏⋯00𝑐𝑎⋯0⋮⋮⋮⋱⋮000⋯𝑎|

とおくと、

𝐷𝑛+2=𝑎𝐷𝑛+1−𝑏𝑐𝐷𝑛,𝐷1=𝑎,𝐷2=𝑎2−𝑏𝑐

が成り立つ。 ただし、この行列は対角成分が𝑎でその右上成分が𝑏で左下成分が𝑐であり他は全て0となっている。

注意 3

計算すると

𝐷1=𝑎,𝐷2=𝑎2−𝑏𝑐,𝐷3=𝑎3−2𝑎𝑏𝑐,…

である。

証明

𝐷1, 𝐷2はサラスの公式より成立する。 第1行に関する余因子展開をして、

𝐷𝑁=𝑎|𝑎𝑏⋯0𝑐𝑎⋯0⋮⋮⋱⋮00⋯𝑎|−𝑏|𝑐𝑏⋯00𝑎⋯0⋮⋮⋱⋮00⋯𝑎|.

さらに後ろの行列式は第1列に関する余因子展開をして、

𝐷𝑁=𝑎|𝑎𝑏⋯0𝑐𝑎⋯0⋮⋮⋱⋮00⋯𝑎|−𝑏𝑐|𝑎⋯0⋮⋱⋮0⋯𝑎|=𝑎𝐷(𝑁−1}−𝑏𝑐𝐷𝑁−2.

よって主張が示された。

例 4

𝑎=2,𝑏=𝑐=1の時、

𝐷𝑛+2=2𝐷𝑛+1−𝐷𝑛,𝐷1=2,𝐷2=3

であり、この漸化式を解いて

𝐷𝑁=𝑁+1

を得る。

命題 5

𝑥,𝑎1,…,𝑎𝑁∈𝐾に対して、

|𝑥−10⋯000𝑥−1⋯0000𝑥⋯00⋮⋮⋮⋱⋮⋮000⋯𝑥−1𝑎1𝑎2𝑎3⋯𝑎𝑁−1𝑥+𝑎𝑁|=𝑥𝑁+𝑎𝑁𝑥𝑁−1+…+𝑎1

が成り立つ。

証明

𝑁についての数学的帰納法で示す。 𝑁=1の時は成立する。 𝑁−1次で成立する時、𝑁次を考える。 第1列についての余因子展開をすると、

|𝑥−10⋯000𝑥−1⋯0000𝑥⋯00⋮⋮⋮⋱⋮⋮000⋯𝑥−1𝑎1𝑎2𝑎3⋯𝑎𝑁−1𝑥+𝑎𝑁|=𝑥|𝑥−1⋯000𝑥⋯00⋮⋮⋱⋮⋮00⋯𝑥−1𝑎2𝑎3⋯𝑎𝑁−1𝑥+𝑎𝑁|−(−1)𝑁+1𝑎1|−10⋯00𝑥−1⋯000𝑥⋯00⋮⋮⋱⋮⋮00⋯𝑥−1|=𝑥(𝑥𝑁−1+𝑎𝑁𝑥𝑁−2+…+𝑎2)−(−1)𝑁+1𝑎1(−1)𝑁−2=𝑥𝑁+𝑎𝑁𝑥𝑁−1+…+𝑎1.

よって、主張が示された。

コーシー・ビネの定理

命題 6 では𝑁次正方行列の積の行列式を考えたが、 この公式を𝑀×𝑁型の行列𝐴,𝐵に拡張することを考える。 ただ、このままでは行列の積も行列式も定義されない。 そこでスカラー積の要領で積の行列式det𝐴𝖳𝐵を考える。 この行列式は𝑀=𝑁の時にはdet𝐴det𝐵に一致し、𝑀<𝑁の時には零となるので、問題になるのは𝑀>𝑁の場合である。

𝑁次の置換が{1,…,𝑁}から{1,…,𝑁}への可逆写像だったことを拡張して、 𝑘を{1,…,𝑁}から{1,…,𝑀}への単射、つまり任意の𝑖≠𝑗に対して𝑘(𝑖)≠𝑘(𝑗)を満たす写像としてそれら全体の集合を𝑆𝑁,𝑀と表すことにする。 さらに𝑘∈𝑆𝑁,𝑀の中で単調増加になっているもの全体を𝑆̄𝑁,𝑀と書く。 すなわち𝑡∈𝑆̄𝑁,𝑀は

1≤𝑡(1)<…<𝑡(𝑁)≤𝑀

を満たす。 この時、𝑘∈𝑆𝑁,𝑀に対して、並べ替えを行うことで、𝑘=𝑡𝑠と𝑡∈𝑆̄𝑁,𝑀, 𝑠∈𝑆𝑁と一意に表すことができることに注意する。

ここで𝑀×𝑁型の行列𝐴と𝑡∈𝑆̄𝑁,𝑀に対して、𝑁次の正方行列𝐴𝑇を𝐴から𝑡で出現する添字だけ取り出して得られる行列とする。 正確には𝐴=(𝒂1⋮𝒂𝑀)=(𝑎11⋯𝑎1𝑁⋮⋱⋮𝑎𝑀1⋯𝑎𝑀𝑁)に対して

𝐴𝑡=(𝒂𝑡(1)⋮𝒂𝑡(𝑁))

であり、

det𝐴𝑡=∑𝑠∈𝑆𝑁sgn(𝑠)𝑎𝑡(1)𝑠(1)…𝑎𝑡(𝑁)𝑠(𝑁)

であることに注意する。

定理 1 (コーシー・ビネの定理)

𝐴と𝐵を𝐾上の𝑀×𝑁型の行列とする。 この時、

det(𝐴𝖳𝐵)=∑𝑡∈𝑆̄𝑁,𝑀det𝐴𝑡det𝐵𝑡

が成り立つ。 ただし、𝑀<𝑁の場合は右辺は零とする。

証明

まず、積𝐴𝐵は成分を使って以下のように書くことができる。

𝐴𝖳𝐵=(𝑎11⋯𝑎𝑀1⋮⋱⋮𝑎1𝑁⋯𝑎𝑀𝑁)(𝒃1⋮𝒃𝑀)=(𝑎11𝒃1+…+𝑎𝑀1𝒃1⋮𝑎1𝑁𝒃1+…+𝑎𝑀𝑁𝒃𝑀)

よって多重線形性と交代性より、

det(𝐴𝖳𝐵)=∑𝑖1=1𝑀…∑𝑖𝑁=1𝑀𝑎𝑖11…𝑎𝑖𝑁𝑁|𝒃𝑖1⋮𝒃𝑖𝑁|=∑𝑘∈𝑆𝑁,𝑀𝑎𝑘(1)1…𝑎𝑘(𝑁)𝑁|𝒃𝑘(1)⋮𝒃𝑘(𝑁)|=∑𝑡∈𝑆̄𝑁,𝑀∑𝑠∈𝑆𝑁𝑎𝑡(𝑠(1))1…𝑎𝑡(𝑠(𝑁))𝑁|𝒃𝑡(𝑠(1))⋮𝒃𝑡(𝑠(𝑁))|.

行を並べ替えて、

det(𝐴𝖳𝐵)=∑𝑡∈𝑆̄𝑁,𝑀∑𝑠∈𝑆𝑁𝑎𝑡(𝑠(1))1…𝑎𝑡(𝑠(𝑁))𝑁sgn(𝑠)|𝒃𝑡(1)⋮𝒃𝑡(𝑁)|.

一番後ろの行列式はdet𝐵𝑡である。 ここでスカラーの積を並べ替えて

𝑎𝑡(𝑠(1))1…𝑎𝑡(𝑠(𝑁))𝑁=𝑎𝑡(1)𝑠−1(1)…𝑎𝑡(𝑁)𝑠−1(𝑁)

なので、

det(𝐴𝖳𝐵)=∑𝑡∈𝑆̄𝑁,𝑀∑𝑠∈𝑆𝑁sgn(𝑠)𝑎𝑡(1)𝑠(1)…𝑎𝑡(𝑁)𝑠(𝑁)det𝐵𝑡=∑𝑡∈𝑆̄𝑁,𝑀det𝐴𝑡det𝐵𝑡

である。

コーシー・ビネの定理で𝑁次の縦ベクトル𝒂=(𝑎1⋮𝑎𝑁),𝒃=(𝑏1⋮𝑏𝑁),𝒄=(𝑐1⋮𝑐𝑁),𝒅=(𝑑1⋮𝑑𝑁)を使って𝑁×2型の行列𝐴=(𝒂𝒃), 𝐵=(𝒄𝒅)に対して適用する。 この時、

det(𝐴𝖳𝐵)=det(𝒂𝖳𝒃𝖳)(𝒄𝒅)=det(𝒂𝖳𝒄𝒂𝖳𝒅𝒃𝖳𝒄𝒃𝖳𝒅)=(𝒂⋅𝒄)(𝒃⋅𝒅)−(𝒂⋅𝒅)(𝒃⋅𝒄),∑𝑡∈𝑆̄2,𝑁det𝐴𝑡det𝐵𝑡=∑𝑖<𝑗|𝑎𝑖𝑏𝑖𝑎𝑗𝑏𝑗||𝑐𝑖𝑑𝑖𝑐𝑗𝑑𝑗|=∑𝑖<𝑗(𝑎𝑖𝑏𝑗−𝑎𝑗𝑏𝑖)(𝑐𝑖𝑑𝑗−𝑐𝑗𝑑𝑖)

なので、 等式

(∑𝑖𝑎𝑖𝑐𝑖)(∑𝑖𝑏𝑖𝑑𝑖)−(∑𝑖𝑎𝑖𝑑𝑖)(∑𝑖𝑏𝑖𝑐𝑖)=∑𝑖<𝑗(𝑎𝑖𝑏𝑗−𝑎𝑗𝑏𝑖)(𝑐𝑖𝑑𝑗−𝑐𝑗𝑑𝑖)

を得る。 この式をビネ・コーシーの恒等式という。

さらに𝒂=𝒄, 𝒃=𝒅の時には

(∑𝑖𝑎𝑖2)(∑𝑖𝑏𝑖2)−(∑𝑖𝑎𝑖𝑏𝑖)2=∑𝑖<𝑗(𝑎𝑖𝑏𝑗−𝑎𝑗𝑏𝑖)2

となり、ラグランジュの恒等式と呼ばれる。 土台が実数体ℝの場合には右辺が非負であることから、コーシー・シュワルツの不等式

(∑𝑖=1𝑁𝑎𝑖𝑏𝑖)2≤(∑𝑖=1𝑁𝑎𝑖2)(∑𝑖=1𝑁𝑏𝑖2)

を導く。