零行列を含むブロック行列の行列式を簡単に求める方法

零行列を含むブロック行列の行列式を簡単に求める方法を紹介します。

 


コンテンツ

det(X)=det(A)det(D) が成り立つX=[AOCD]

使い方

 

 det[AOCD]=det(A)det(D) が成り立つ

[ABOD][AOCD] などの零行列を含む行列の行列式は対角ブロック行列のADの行列式の積で表せるので、各成分をマジメに計算しなくても求めることができます。

このことは以下のように正当化されます。

一般の場合を考えてX=[AOCD]=[xij]と置き、An次正方行列、Dm次正方行列とします。このときXs=n+m 次正方行列となります。

 

ここで、行列Xの行列式は()det(X)=σSnsgn(σ)x1σ(1)x2σ(2)xsσ(s)で与えられます。ただし、n個の数字の置換全体の集合をSnと置いています。

 

もとの行列Xの零行列の部分に注目すると、1in および n+1js のとき xij=0 となるので、()における和は{σ(1),σ(2),,σ(n)}={1,2,,n}について取れば良いことになります。

 

このとき、残りの置換について、{σ(n+1),σ(n+2),,σ(s)}={n+1,n+2,,s}となります。いま、これらの2つの置換を、τ=(12nσ(1)σ(2)σ(n))ρ=(n+1n+2sσ(n+1)σ(n+2)σ(s))と置きます。ただし、τSnρSsn です。また、元の置換σσ=τρ で表すことができます。

 

置換の符号について、sgn(σ)=sgn(τρ)=sgn(τ)sgn(ρ)が成り立つので、Xの行列式()は、det(X)=τρsgn(τρ)x1τ(1)xnτ(n)xn+1ρ(n+1)xsρ(s)=(τsgn(τ)x1τ(1)xnτ(n))(ρsgn(ρ)xn+1ρ(n+1)xsρ(s))=det(A)det(D)で与えられます。

結局、det[AOCD]=det(A)det(D)という関係式が成立するので、零ブロック行列が含まれる場合は対角ブロックについてのみ考えればよく、計算の手間が大幅に削減できます。

一般に、行列Aが正則のときdet[ABCD]=det(A)det(DCA1B)が成り立ち、行列Dが正則のときはdet[ABCD]=det(D)det(ABD1C)が成り立ちます。B=O、もしくは C=O とすると右辺が det(A)det(D) となることはこの事実からも分かります。

 

 使い方

試しに、次の行列の行列式を求めてみましょう。det[3512126091007120032500006]

|3512126091007120032500006|=|3526||712325006|=6|3526||7132|=6811=528()

上の例では零行列部分の縮約を2回行って求めています。愚直に計算する場合だと5つの成分からなる120組の積の和を計算しなければならないので大変です。


では、次の行列ではどうでしょうか。det[3512126093367122700015000]計算は以下のように行われます。

|3512126093367122700015000|=|2700015000367123512126093|(行を入れ替えた)=|2715||712121093|=3|712121093|=33|712121031|(3を括り出した)=33|0135121031|(+×(7))=9|1210135031|(行を入れ替えた)=9|13531|=92=18()

このように行列の基本変形を利用することで零行列を作り出し、計算の手間を削減することができます。4次以上の行列の場合はマジメに計算してしまうよりも、零行列が隠れていないか調べた方が良いでしょう。


 

“零行列を含むブロック行列の行列式を簡単に求める方法” への1件の返信

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

©Copyright 2017-2025 理系のための備忘録 All Rights Reserved.