線形代数 において、ピエール=シモン・ラプラス にちなんで名付けられたラプラス展開 (コファクター展開 とも呼ばれる)は、 n × n 行列B の行列式を、 B のいくつかの( n − 1) × ( n − 1) 部分行列の行列式 である小行列式 の重み付き和として表す表現である。具体的には、任意のi について、i 行 に沿ったラプラス展開は 次の等式で表される 。検出 ( B ) = ∑ j = 1 n ( − 1 ) 私 + j b 私 、 j m 私 、 j 、 {\displaystyle {\begin{aligned}\det(B)&=\sum _{j=1}^{n}(-1)^{i+j}b_{i,j}m_{i,j},\end{aligned}}} どこb 私 、 j {\displaystyle b_{i,j}} はBの i 行j 列目のエントリであり、m 私 、 j {\displaystyle m_{i,j}} は、 Bの i 行目とj 列目を削除して得られる部分行列の行列式です。同様に、j 列目 に沿ったラプラス展開は 次の等式です。 検出 ( B ) = ∑ 私 = 1 n ( − 1 ) 私 + j b 私 、 j m 私 、 j 。 {\displaystyle {\begin{aligned}\det(B)&=\sum _{i=1}^{n}(-1)^{i+j}b_{i,j}m_{i,j}.\end{aligned}}} (行列とその転置行列 の行列式は同じであるため、それぞれの恒等式は互いに意味を成す。)
係数( − 1 ) 私 + j m 私 、 j {\displaystyle (-1)^{i+j}m_{i,j}} のb 私 、 j {\displaystyle b_{i,j}} 上記の和では、はのコファクターと呼ばれます。 b 私 、 j {\displaystyle b_{i,j}} B において。
ラプラス展開は、例えば行列のサイズに関する再帰を 可能にするなど、証明においてしばしば有用です。また、その簡潔さや、行列式を視覚化・計算する複数の方法の一つとして、教育的な観点からも興味深いものです。しかし、大きな行列の場合、ガウス消去法 と比較すると、計算効率が著しく低下します。
例 行列を考える
B = [ 1 2 3 4 5 6 7 8 9 ] 。 {\displaystyle B={\begin{bmatrix}1&2&3\\4&5&6\\7&8&9\end{bmatrix}}.} この行列の行列式は、その行または列のいずれか1つに沿ってラプラス展開を用いることで計算できます。例えば、1行目に沿って展開すると次のようになります。
| B | = 1 ⋅ | 5 6 8 9 | − 2 ⋅ | 4 6 7 9 | + 3 ⋅ | 4 5 7 8 | = 1 ⋅ ( − 3 ) − 2 ⋅ ( − 6 ) + 3 ⋅ ( − 3 ) = 0. {\displaystyle {\begin{aligned}|B|&=1\cdot {\begin{vmatrix}5&6\\8&9\end{vmatrix}}-2\cdot {\begin{vmatrix}4&6\\7&9\end{vmatrix}}+3\cdot {\begin{vmatrix}4&5\\7&8\end{vmatrix}}\\[5pt]&=1\cdot (-3)-2\cdot (-6)+3\cdot (-3)=0.\end{aligned}}} 第2列に沿ったラプラス展開でも同じ結果が得られる。
| B | = − 2 ⋅ | 4 6 7 9 | + 5 ⋅ | 1 3 7 9 | − 8 ⋅ | 1 3 4 6 | = − 2 ⋅ ( − 6 ) + 5 ⋅ ( − 12 ) − 8 ⋅ ( − 6 ) = 0. {\displaystyle {\begin{aligned}|B|&=-2\cdot {\begin{vmatrix}4&6\\7&9\end{vmatrix}}+5\cdot {\begin{vmatrix}1&3\\7&9\end{vmatrix}}-8\cdot {\begin{vmatrix}1&3\\4&6\end{vmatrix}}\\[5pt]&=-2\cdot (-6)+5\cdot (-12)-8\cdot (-6)=0.\end{aligned}}} 結果が正しいことは簡単に確認できます。行列は、第1列と第3列の和が第2列の2倍であるため特異行列であり、したがって行列式はゼロになります。
証拠 3×3の場合のラプラス展開の可視化:各行列式の置換項は、1行目の選択と対応する2×2マイナーからの置換項から構築されます。 仮定するB {\displaystyle B} n × n 行列であり、私 、 j ∈ { 1 、 2 、 … 、 n } 。 {\displaystyle i,j\in \{1,2,\dots ,n\}.} 分かりやすくするために、エントリにラベルを付けます。B {\displaystyle B} それはそれを構成する私 、 j {\displaystyle i,j} マイナーマトリックスM 私 j {\displaystyle M_{ij}} として
( 1 s t ) {\displaystyle (a_{st})} のために1 ≤ s 、 t ≤ n − 1. {\displaystyle 1\leq s,t\leq n-1.}
展開の項を考慮する| B | {\displaystyle |B|} 持っているb 私 j {\displaystyle b_{ij}} 要因として。それぞれ次の形式をとる。
サイン τ b 1 、 τ ( 1 ) ⋯ b 私 、 j ⋯ b n 、 τ ( n ) = サイン τ b 私 j 1 1 、 σ ( 1 ) ⋯ 1 n − 1 、 σ ( n − 1 ) {\displaystyle \operatorname {sgn} \tau \,b_{1,\tau (1)}\cdots b_{i,j}\cdots b_{n,\tau (n)}=\operatorname {sgn} \tau \,b_{ij}a_{1,\sigma (1)}\cdots a_{n-1,\sigma (n-1)}} ある順列 τ ∈ S n に対してτ ( 私 ) = j {\displaystyle \tau (i)=j} 、そして独特で明らかに関連性のある順列σ ∈ S n − 1 {\displaystyle \sigma \in S_{n-1}} これはτ と同じマイナーエントリを選択します。同様に、σ の各選択は対応するτ 、つまり対応関係を決定します。σ ↔ τ {\displaystyle \sigma \leftrightarrow \tau } は全単射 である。S n − 1 {\displaystyle S_{n-1}} そして{ τ ∈ S n : τ ( 私 ) = j } 。 {\displaystyle \{\tau \in S_{n}\colon \tau (i)=j\}.} コーシーの2行記法 を用いると、 と の間の明示的な関係は次のようになる。τ {\displaystyle \tau } そしてσ {\displaystyle \sigma } 次のように書くことができます
σ = ( 1 2 ⋯ 私 ⋯ n − 1 ( ← ) j ( τ ( 1 ) ) ( ← ) j ( τ ( 2 ) ) ⋯ ( ← ) j ( τ ( 私 + 1 ) ) ⋯ ( ← ) j ( τ ( n ) ) ) {\displaystyle \sigma ={\begin{pmatrix}1&2&\cdots &i&\cdots &n-1\\(\leftarrow )_{j}(\tau (1))&(\leftarrow )_{j}(\tau (2))&\cdots &(\leftarrow )_{j}(\tau (i+1))&\cdots &(\leftarrow )_{j}(\tau (n))\end{pmatrix}}} どこ( ← ) j {\displaystyle (\leftarrow )_{j}} はサイクル を表す一時的な略記法です( n 、 n − 1 、 ⋯ 、 j + 1 、 j ) {\displaystyle (n,n-1,\cdots ,j+1,j)} この操作では、j より大きいすべてのインデックスをデクリメントして、すべてのインデックスが {1,2,...,n-1} の集合に収まるようにします。
置換τは σ から次のように導出できる。σ ′ ∈ S n {\displaystyle \sigma '\in S_{n}} によるσ ′ ( k ) = σ ( k ) {\displaystyle \sigma '(k)=\sigma (k)} のために1 ≤ k ≤ n − 1 {\displaystyle 1\leq k\leq n-1} そしてσ ′ ( n ) = n {\displaystyle \sigma '(n)=n} 。 それからσ ′ {\displaystyle \sigma '} は次のように表現されます。
σ ′ = ( 1 2 ⋯ 私 ⋯ n − 1 n ( ← ) j ( τ ( 1 ) ) ( ← ) j ( τ ( 2 ) ) ⋯ ( ← ) j ( τ ( 私 + 1 ) ) ⋯ ( ← ) j ( τ ( n ) ) n ) {\displaystyle \sigma '={\begin{pmatrix}1&2&\cdots &i&\cdots &n-1&n\\(\leftarrow )_{j}(\tau (1))&(\leftarrow )_{j}(\tau (2))&\cdots &(\leftarrow )_{j}(\tau (i+1))&\cdots &(\leftarrow )_{j}(\tau (n))&n\end{pmatrix}}} さて、適用する操作は( ← ) 私 {\displaystyle (\leftarrow )_{i}} まず適用し、次に適用しますσ ′ {\displaystyle \sigma '} (AをBの前に適用することは、2行表記でBの上段にAの逆演算を適用することと同等であることに注意してください。)
σ ′ ( ← ) 私 = ( 1 2 ⋯ 私 + 1 ⋯ n 私 ( ← ) j ( τ ( 1 ) ) ( ← ) j ( τ ( 2 ) ) ⋯ ( ← ) j ( τ ( 私 + 1 ) ) ⋯ ( ← ) j ( τ ( n ) ) n ) {\displaystyle \sigma '(\leftarrow )_{i}={\begin{pmatrix}1&2&\cdots &i+1&\cdots &n&i\\(\leftarrow )_{j}(\tau (1))&(\leftarrow )_{j}(\tau (2))&\cdots &(\leftarrow )_{j}(\tau (i+1))&\cdots &(\leftarrow )_{j}(\tau (n))&n\end{pmatrix}}} どこ( ← ) 私 {\displaystyle (\leftarrow )_{i}} は、( n 、 n − 1 、 ⋯ 、 私 + 1 、 私 ) {\displaystyle (n,n-1,\cdots ,i+1,i)} 。
適用される操作τ {\displaystyle \tau } まず適用し、次に適用します( ← ) j {\displaystyle (\leftarrow )_{j}} は
( ← ) j τ = ( 1 2 ⋯ 私 ⋯ n − 1 n ( ← ) j ( τ ( 1 ) ) ( ← ) j ( τ ( 2 ) ) ⋯ n ⋯ ( ← ) j ( τ ( n − 1 ) ) ( ← ) j ( τ ( n ) ) ) {\displaystyle (\leftarrow )_{j}\tau ={\begin{pmatrix}1&2&\cdots &i&\cdots &n-1&n\\(\leftarrow )_{j}(\tau (1))&(\leftarrow )_{j}(\tau (2))&\cdots &n&\cdots &(\leftarrow )_{j}(\tau (n-1))&(\leftarrow )_{j}(\tau (n))\end{pmatrix}}} 上記2つは等しいので、
( ← ) j τ = σ ′ ( ← ) 私 {\displaystyle (\leftarrow )_{j}\tau =\sigma '(\leftarrow )_{i}} τ = ( → ) j σ ′ ( ← ) 私 {\displaystyle \tau =(\rightarrow )_{j}\sigma '(\leftarrow )_{i}} どこ( → ) j {\displaystyle (\rightarrow )_{j}} は逆です( ← ) j {\displaystyle (\leftarrow )_{j}} それは( j 、 j + 1 、 ⋯ 、 n ) {\displaystyle (j,j+1,\cdots ,n)} 。
したがって
τ = ( j 、 j + 1 、 … 、 n ) σ ′ ( n 、 n − 1 、 … 、 私 ) {\displaystyle \tau \,=(j,j+1,\ldots ,n)\sigma '(n,n-1,\ldots ,i)} 2つのサイクルは それぞれ次のように書けるのでn − 私 {\displaystyle n-i} そしてn − j {\displaystyle n-j} 転置 、
サイン τ = ( − 1 ) 2 n − ( 私 + j ) サイン σ ′ = ( − 1 ) 私 + j サイン σ 。 {\displaystyle \operatorname {sgn} \tau \,=(-1)^{2n-(i+j)}\operatorname {sgn} \sigma '\,=(-1)^{i+j}\operatorname {sgn} \sigma .} そして地図がσ ↔ τ {\displaystyle \sigma \leftrightarrow \tau } 全単射である、
∑ 私 = 1 n ∑ τ ∈ S n : τ ( 私 ) = j サイン τ b 1 、 τ ( 1 ) ⋯ b n 、 τ ( n ) = ∑ 私 = 1 n ∑ σ ∈ S n − 1 ( − 1 ) 私 + j サイン σ b 私 j 1 1 、 σ ( 1 ) ⋯ 1 n − 1 、 σ ( n − 1 ) = ∑ 私 = 1 n b 私 j ( − 1 ) 私 + j ∑ σ ∈ S n − 1 サイン σ 1 1 、 σ ( 1 ) ⋯ 1 n − 1 、 σ ( n − 1 ) = ∑ 私 = 1 n b 私 j ( − 1 ) 私 + j M 私 j {\displaystyle {\begin{aligned}\sum _{i=1}^{n}\sum _{\tau \in S_{n}:\tau (i)=j}\operatorname {sgn} \tau \,b_{1,\tau (1)}\cdots b_{n,\tau (n)}&=\sum _{i=1}^{n}\sum _{\sigma \in S_{n-1}}(-1)^{i+j}\operatorname {sgn} \sigma \,b_{ij}a_{1,\sigma (1)}\cdots a_{n-1,\sigma (n-1)}\\&=\sum _{i=1}^{n}b_{ij}(-1)^{i+j}\sum _{\sigma \in S_{n-1}}\operatorname {sgn} \sigma \,a_{1,\sigma (1)}\cdots a_{n-1,\sigma (n-1)}\\&=\sum _{i=1}^{n}b_{ij}(-1)^{i+j}M_{ij}\end{aligned}}} そこから結果が導かれる。同様に、外側の総和のインデックスを に置き換えた場合も結果は成り立つ。j {\displaystyle j} [ 1 ]
補小行列式による行列式のラプラス展開 ラプラスの余因子展開は、以下のように一般化できる。
例 行列を考える
A = [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ] 。 {\displaystyle A={\begin{bmatrix}1&2&3&4\\5&6&7&8\\9&10&11&12\\13&14&15&16\end{bmatrix}}.} この行列の行列式は、最初の 2 行に沿ってラプラスの余因子展開を使用して次のように計算できます。まず、{1, 2, 3, 4} には 6 つの異なる 2 つの数のセットがあることに注意してください。 S = { { 1 、 2 } 、 { 1 、 3 } 、 { 1 、 4 } 、 { 2 、 3 } 、 { 2 、 4 } 、 { 3 、 4 } } {\displaystyle S=\left\{\{1,2\},\{1,3\},\{1,4\},\{2,3\},\{2,4\},\{3,4\}\right\}} 前述の集合とする。
相補的な補因子を定義することにより
b { j 、 k } = | 1 1 j 1 1 k 1 2 j 1 2 k | 、 {\displaystyle b_{\{j,k\}}={\begin{vmatrix}a_{1j}&a_{1k}\\a_{2j}&a_{2k}\end{vmatrix}},} c { p 、 q } = | 1 3 p 1 3 q 1 4 p 1 4 q | 、 {\displaystyle c_{\{p,q\}}={\begin{vmatrix}a_{3p}&a_{3q}\\a_{4p}&a_{4q}\end{vmatrix}},} そしてそれらの順列の符号は
ε { j 、 k } 、 { p 、 q } = サイン [ 1 2 3 4 j k p q ] 、 どこ p ≠ j 、 q ≠ k 。 {\displaystyle \varepsilon ^{\{j,k\},\{p,q\}}=\operatorname {sgn} {\begin{bmatrix}1&2&3&4\\j&k&p&q\end{bmatrix}},{\text{ where }}p\neq j,q\neq k.} A の行列式は次のように表すことができます。
| A | = ∑ H ∈ S ε H 、 H ′ b H c H ′ 、 {\displaystyle |A|=\sum _{H\in S}\varepsilon ^{H,H^{\prime }}b_{H}c_{H^{\prime }},} どこH ′ {\displaystyle H^{\prime }} は、H {\displaystyle H} 。
具体的な例では、これは次のようになります。
| A | = b { 1 、 2 } c { 3 、 4 } − b { 1 、 3 } c { 2 、 4 } + b { 1 、 4 } c { 2 、 3 } + b { 2 、 3 } c { 1 、 4 } − b { 2 、 4 } c { 1 、 3 } + b { 3 、 4 } c { 1 、 2 } = | 1 2 5 6 | ⋅ | 11 12 15 16 | − | 1 3 5 7 | ⋅ | 10 12 14 16 | + | 1 4 5 8 | ⋅ | 10 11 14 15 | + | 2 3 6 7 | ⋅ | 9 12 13 16 | − | 2 4 6 8 | ⋅ | 9 11 13 15 | + | 3 4 7 8 | ⋅ | 9 10 13 14 | = − 4 ⋅ ( − 4 ) − ( − 8 ) ⋅ ( − 8 ) + ( − 12 ) ⋅ ( − 4 ) + ( − 4 ) ⋅ ( − 12 ) − ( − 8 ) ⋅ ( − 8 ) + ( − 4 ) ⋅ ( − 4 ) = 16 − 64 + 48 + 48 − 64 + 16 = 0. {\displaystyle {\begin{aligned}|A|&=b_{\{1,2\}}c_{\{3,4\}}-b_{\{1,3\}}c_{\{2,4\}}+b_{\{1,4\}}c_{\{2,3\}}+b_{\{2,3\}}c_{\{1,4\}}-b_{\{2,4\}}c_{\{1,3\}}+b_{\{3,4\}}c_{\{1,2\}}\\[5pt]&={\begin{vmatrix}1&2\\5&6\end{vmatrix}}\cdot {\begin{vmatrix}11&12\\15&16\end{vmatrix}}-{\begin{vmatrix}1&3\\5&7\end{vmatrix}}\cdot {\begin{vmatrix}10&12\\14&16\end{vmatrix}}+{\begin{vmatrix}1&4\\5&8\end{vmatrix}}\cdot {\begin{vmatrix}10&11\\14&15\end{vmatrix}}+{\begin{vmatrix}2&3\\6&7\end{vmatrix}}\cdot {\begin{vmatrix}9&12\\13&16\end{vmatrix}}-{\begin{vmatrix}2&4\\6&8\end{vmatrix}}\cdot {\begin{vmatrix}9&11\\13&15\end{vmatrix}}+{\begin{vmatrix}3&4\\7&8\end{vmatrix}}\cdot {\begin{vmatrix}9&10\\13&14\end{vmatrix}}\\[5pt]&=-4\cdot (-4)-(-8)\cdot (-8)+(-12)\cdot (-4)+(-4)\cdot (-12)-(-8)\cdot (-8)+(-4)\cdot (-4)\\[5pt]&=16-64+48+48-64+16=0.\end{aligned}}} 上記のように、結果が正しいことは簡単に確認できます。行列は、第1列と第3列の和が第2列の2倍であるため特異 行列であり、したがって行列式はゼロになります。
一般声明 させてB = [ b 私 j ] {\displaystyle B=[b_{ij}]} n × n 行列とし、S {\displaystyle S} {1, 2, ... , n }の k 要素部分集合の集合、H {\displaystyle H} その中の要素。次に、B {\displaystyle B} によって識別されるk 行に沿って展開できますH {\displaystyle H} 次のように:
| B | = ∑ L ∈ S ε H 、 L b H 、 L c H 、 L {\displaystyle |B|=\sum _{L\in S}\varepsilon ^{H,L}b_{H,L}c_{H,L}} どこε H 、 L {\displaystyle \varepsilon ^{H,L}} は、によって決定される順列の符号です。H {\displaystyle H} そしてL {\displaystyle L} 等しい( − 1 ) ( ∑ h ∈ H h ) + ( ∑ ℓ ∈ L ℓ ) {\displaystyle (-1)^{\left(\sum _{h\in H}h\right)+\left(\sum _{\ell \in L}\ell \right)}} 、b H 、 L {\displaystyle b_{H,L}} 平方マイナーB {\displaystyle B} 削除によって得られたB {\displaystyle B} インデックス付きの行と列H {\displaystyle H} そしてL {\displaystyle L} それぞれ、c H 、 L {\displaystyle c_{H,L}} (b H 、 L {\displaystyle b_{H,L}} ) と定義されるb H ′ 、 L ′ {\displaystyle b_{H',L'}} 、H ′ {\displaystyle H'} そしてL ′ {\displaystyle L'} 補数であるH {\displaystyle H} そしてL {\displaystyle L} それぞれ。
これは、上記の定理と一致する。k = 1 {\displaystyle k=1} 固定されたk 列の場合も同様です。
計算複雑性 ラプラス展開は高次元行列に対して計算効率が悪く、ビッグオー記法 では時間計算量が O ( n !) となります。一方、 LU分解 のように三角行列 に分解することで、 時間計算量がO ( n³ ) の行列式を得ることができます。[ 2 ] 以下のPython コードはラプラス展開を実装しています。
def determinant ( M ): # 再帰関数の基本ケース: 1x1 行列 if len ( M ) == 1 : return M [ 0 ][ 0 ] total = 0 for column , element in enumerate ( M [ 0 ]): # 最初の行と現在の列を除外します。 K = [ x [: column ] + x [ column + 1 :] for x in M [ 1 :]] s = 1 if column % 2 == 0 else - 1 total += s * element * determinant ( K ) return total
参考文献 ↑ Walter, Dan; Tytun, Alex (1949). "初等問題 834". American Mathematical Monthly . 56 (6). American Mathematical Society: 409. doi : 10.2307/2306289 . JSTOR 2306289 . ↑ ストーア・ブリルシュ著:数値数学入門 デイビッド・プール著:線形代数:現代的入門。Cengage Learning、2005年、ISBN 0-534-99845-3 、265~267ページ (Googleブックス では265ページのみ 閲覧可能 ) ハーヴェイ・E・ローズ:線形代数。純粋数学的アプローチ 。シュプリンガー、2002年、ISBN 3-7643-6905-1 、57~60ページ (Googleブックス では57ページのみ 閲覧可能 )