This article is about the expression of a determinant in terms of minors. For the approximation of radial potentials, see
Laplace expansion (potential) .
Expression of a determinant in terms of minors
선형 대수(linear algebra) 에서, 라플라스 전개 (Laplace expansion )는, 피에르-시몽 라플라스(Pierre-Simon Laplace) 의 이름을 따서 지었으며, 역시 여인수 전개 (cofactor expansion )라고 불리며, n × n 행렬 B 의 행렬식(determinant) 을 소행렬식(minors) 의 가중된 합으로 표현한 것이며, 소행렬식은 B 의 일부 (n − 1) × (n − 1) 부분행렬(submatrices) 의 행렬식입니다. 구체적으로, 모든 각 i 에 대해,
det
(
B
)
=
∑
j
=
1
n
(
−
1
)
i
+
j
b
i
,
j
m
i
,
j
,
{\displaystyle {\begin{aligned}\det(B)&=\sum _{j=1}^{n}(-1)^{i+j}b_{i,j}m_{i,j},\end{aligned}}}
여기서
b
i
,
j
{\displaystyle b_{i,j}}
는 B 의 i -번째 행과 j -번째 열의 엔트리이고,
m
i
,
j
{\displaystyle m_{i,j}}
는 B 의 i -번째 행과 j -번째 열을 제거함으로써 얻은 부분행렬의 행렬식입니다.
항
(
−
1
)
i
+
j
M
i
,
j
{\displaystyle (-1)^{i+j}M_{i,j}}
는 B 에서
B
i
,
j
{\displaystyle B_{i,j}}
의 여인수(cofactor) 라고 불립니다.
라플라스 전개는 종종, 예를 들어 행렬 크기에 대한 재귀(recursion) 를 허용하는 것과 같이 증명에 유용합니다. 그것은 역시 단순함과 행렬식을 보고 계산하기 위한 여러 방법 중 하나라는 점에서 교훈적인 흥미를 불러일으킵니다. 큰 행렬에 대해, 그것은 가우스 소거법(Gaussian elimination) 과 비교될 때 빠르게 계산하는 것이 비효율적입니다.
Examples
다음 행렬을 생각해 보십시오:
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}}.}
이 행렬의 행렬식은 해당 행 또는 열 중 임의의 하나를 따라 라플라스 전개를 사용함으로써 계산될 수 있습니다. 예를 들어, 첫 번째 행을 따라 전개는 다음을 산출합니다:
|
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}}}
두 번째 열을 따라 라플라스를 전개는 같은 결과를 산출합니다:
|
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}}}
결과가 올바른지 쉽게 확인할 수 있습니다: 행렬은 그것의 첫 번째 열과 세 번째 열의 합이 두 번째 열의 두 배이고, 따라서 그것의 행렬식은 영이므로 특이(singular) 입니다.
Proof
B
{\displaystyle B}
가 n × n 행렬이고
i
,
j
∈
{
1
,
2
,
…
,
n
}
{\displaystyle i,j\in \{1,2,\dots ,n\}}
라고 가정합니다. 명확성을 위해, 우리는 역시
i
,
j
{\displaystyle i,j}
소행렬
M
i
j
{\displaystyle M_{ij}}
를 다음으로 구성하는
B
{\displaystyle B}
의 엔트리를 분류합니다:
(
a
s
t
)
{\displaystyle (a_{st})}
for
1
≤
s
,
t
≤
n
−
1.
{\displaystyle 1\leq s,t\leq n-1.}
b
i
j
{\displaystyle b_{ij}}
를 인수로 가지는
|
B
|
{\displaystyle |B|}
의 전개에서 항을 생각해 보십시오. 각각은
τ
(
i
)
=
j
{\displaystyle \tau (i)=j}
를 갖는 일부 순열 τ ∈ Sn , 및 τ 와 같은 소행렬 엔트리를 선택하는 고유하고 명백하게 관련된 순열
σ
∈
S
n
−
1
{\displaystyle \sigma \in S_{n-1}}
에 대해 다음 형식을 가지고 있습니다:
sgn
τ
b
1
,
τ
(
1
)
⋯
b
i
,
j
⋯
b
n
,
τ
(
n
)
=
sgn
τ
b
i
j
a
1
,
σ
(
1
)
⋯
a
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)}}
마찬가지로, σ 의 각 선택은 대응하는 τ 를 결정합니다. 즉, 대응
σ
↔
τ
{\displaystyle \sigma \leftrightarrow \tau }
는
S
n
−
1
{\displaystyle S_{n-1}}
과
{
τ
∈
S
n
:
τ
(
i
)
=
j
}
{\displaystyle \{\tau \in S_{n}\colon \tau (i)=j\}}
사이의 전단사(bijection) 입니다. 코시의 두-줄 표기법(Cauchy's two-line notation) 을 사용하여,
τ
{\displaystyle \tau }
와
σ
{\displaystyle \sigma }
사이의 명시적 관계는 다음과 같이 쓸 수 있습니다:
σ
=
(
1
2
⋯
i
⋯
n
−
1
(
←
)
j
(
τ
(
1
)
)
(
←
)
j
(
τ
(
2
)
)
⋯
(
←
)
j
(
τ
(
i
+
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)}
에 대해 임시 속기 표기법입니다. 이 연산은 모든 각 인덱스가 집합 {1,2,...,n-1}에 맞도록 j보다 큰 모든 인덱스를 감소시킵니다.
순열 τ 는 다음과 같이 σ 에서 유도될 수 있습니다.
σ
′
∈
S
n
{\displaystyle \sigma '\in S_{n}}
를
1
≤
k
≤
n
−
1
{\displaystyle 1\leq k\leq n-1}
와
σ
′
(
n
)
=
n
{\displaystyle \sigma '(n)=n}
에 대해
σ
′
(
k
)
=
σ
(
k
)
{\displaystyle \sigma '(k)=\sigma (k)}
로 정의합니다. 그런-다음
σ
′
{\displaystyle \sigma '}
는 다음과 같이 표현됩니다:
σ
′
=
(
1
2
⋯
i
⋯
n
−
1
n
(
←
)
j
(
τ
(
1
)
)
(
←
)
j
(
τ
(
2
)
)
⋯
(
←
)
j
(
τ
(
i
+
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}}}
이제,
(
←
)
i
{\displaystyle (\leftarrow )_{i}}
를 먼저 적용하고 그런-다음
σ
′
{\displaystyle \sigma '}
를 적용하는 연산은 다음과 같습니다 (A를 B보다 먼저 적용하는 것은 두-줄 표기법에서 B의 위쪽 행에 A의 역을 적용하는 것과 동등합니다)
σ
′
(
←
)
i
=
(
1
2
⋯
i
+
1
⋯
n
i
(
←
)
j
(
τ
(
1
)
)
(
←
)
j
(
τ
(
2
)
)
⋯
(
←
)
j
(
τ
(
i
+
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}}}
여기서
(
←
)
i
{\displaystyle (\leftarrow )_{i}}
는
(
n
,
n
−
1
,
⋯
,
i
+
1
,
i
)
{\displaystyle (n,n-1,\cdots ,i+1,i)}
에 대해 임시 속기 표기법입니다.
먼저
τ
{\displaystyle \tau }
를 적용하고 그런-다음
(
←
)
j
{\displaystyle (\leftarrow )_{j}}
를 적용하는 연산은 다음과 같습니다:
(
←
)
j
τ
=
(
1
2
⋯
i
⋯
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}}}
위의 두 개는 같고 따라서,
(
←
)
j
τ
=
σ
′
(
←
)
i
{\displaystyle (\leftarrow )_{j}\tau =\sigma '(\leftarrow )_{i}}
τ
=
(
→
)
j
σ
′
(
←
)
i
{\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
,
…
,
i
)
{\displaystyle \tau \,=(j,j+1,\ldots ,n)\sigma '(n,n-1,\ldots ,i)}
두 순환이 각각
n
−
i
{\displaystyle n-i}
과
n
−
j
{\displaystyle n-j}
전치(transpositions) 로 쓸 수 있으므로,
sgn
τ
=
(
−
1
)
2
n
−
(
i
+
j
)
sgn
σ
′
=
(
−
1
)
i
+
j
sgn
σ
.
{\displaystyle \operatorname {sgn} \tau \,=(-1)^{2n-(i+j)}\operatorname {sgn} \sigma '\,=(-1)^{i+j}\operatorname {sgn} \sigma .}
그리고 맵
σ
↔
τ
{\displaystyle \sigma \leftrightarrow \tau }
은 전단사이기 때문에,
∑
i
=
1
n
∑
τ
∈
S
n
:
τ
(
i
)
=
j
sgn
τ
b
1
,
τ
(
1
)
⋯
b
n
,
τ
(
n
)
=
∑
i
=
1
n
∑
σ
∈
S
n
−
1
(
−
1
)
i
+
j
sgn
σ
b
i
j
a
1
,
σ
(
1
)
⋯
a
n
−
1
,
σ
(
n
−
1
)
=
∑
i
=
1
n
b
i
j
(
−
1
)
i
+
j
∑
σ
∈
S
n
−
1
sgn
σ
a
1
,
σ
(
1
)
⋯
a
n
−
1
,
σ
(
n
−
1
)
=
∑
i
=
1
n
b
i
j
(
−
1
)
i
+
j
M
i
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}
로 대체되면 유지됩니다.
Laplace expansion of a determinant by complementary minors
라플라스의 여인수 전개는 다음과 같이 일반화될 수 있습니다.
Example
다음 행렬을 생각해 보십시오:
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}}.}
이 행렬의 행렬식은 다음과 같이 처음 두 행을 따라 라플라스의 여인수 전개를 사용함으로써 계산될 수 있습니다. 먼저 {1, 2, 3, 4} 에서 두 개의 구별되는 숫자의 6개 집합이 있음을 주목하십시오. 즉,
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
}
=
|
a
1
j
a
1
k
a
2
j
a
2
k
|
,
{\displaystyle b_{\{j,k\}}={\begin{vmatrix}a_{1j}&a_{1k}\\a_{2j}&a_{2k}\end{vmatrix}},}
c
{
p
,
q
}
=
|
a
3
p
a
3
q
a
4
p
a
4
q
|
,
{\displaystyle c_{\{p,q\}}={\begin{vmatrix}a_{3p}&a_{3q}\\a_{4p}&a_{4q}\end{vmatrix}},}
그리고 그것들의 순열의 부호를 다음으로 정의함으로써,
ε
{
j
,
k
}
,
{
p
,
q
}
=
sgn
[
1
2
3
4
j
k
p
q
]
,
where
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}}}
위와 같이, 결과가 올바른지 쉽게 확인할 수 있습니다: 첫 번째 열과 세 번째 열의 합이 두 번째 열의 두 배이기 때문에 행렬은 특이(singular) 이고, 따라서 행렬식은 영입니다.
General statement
B
=
[
b
i
j
]
{\displaystyle B=[b_{ij}]}
를 n × n 행렬이라고 놓고
S
{\displaystyle S}
를 {1, 2, ... , n } 의 k -원소 부분집합의 집합이라고 놓고,
H
{\displaystyle H}
를 그 안에 있는 원소라고 놓습니다. 그런-다음
B
{\displaystyle B}
의 행렬식은 다음과 같이
B
{\displaystyle B}
로 식별되는 k 행을 따라 전개될 수 있습니다:
|
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}
에 인덱스를 갖는 열, 및
b
H
′
,
L
′
{\displaystyle b_{H',L'}}
로 정의된
c
H
,
L
{\displaystyle c_{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 열에 대해서도 마찬가지입니다.
Computational expense
라플라스 전개는 O (n !) 의 큰 O 표기법(big O notation) 에서 시간 복잡도(time complexity) 를 갖는 고차원 행렬에 대해 계산적으로 비효율적입니다. 대안적으로, LU 분해 에서와 같이 삼각 행렬 로의 분해를 사용하는 것은 O (n 3 ) 의 시간 복잡도를 갖는 행렬식을 생성할 수 있습니다.[1] 다음 Python 코드는 재귀적으로 라플라스 전개를 구현합니다:
def determinant ( M ):
# Base case of recursive function: 1x1 matrix
if len ( M ) == 1 :
return M [ 0 ][ 0 ]
total = 0
for column , element in enumerate ( M [ 0 ]):
# Exclude first row and current column.
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
See also
References
^ Stoer Bulirsch: Introduction to Numerical Mathematics
External links