행렬식 (Determinant)
행렬식의 정의
- 행렬식(Determinant)은 정방행렬(square matrix)에만 정의되는 스칼라 값으로, 행렬이 나타내는 선형 변환이 공간을 얼마나 확대하거나 축소하는지, 그리고 방향을 유지하는지 또는 뒤집는지에 대한 정보를 담고 있다.
- 행렬 A의 행렬식은 det(A) 또는 ∣A∣로 표기한다.
행렬식의 계산
1) 2x2 행렬의 행렬식
- 2x2 행렬 A에 대하여, 행렬식은 다음과 같이 계산한다.
A=[acbd]
det(A)=ad−bc
- 예를 들어, 행렬 B가 다음과 같다면 행렬식의 값의 다음과 같이 계산된다.
B=[1324]
det(B)=1⋅2−2⋅3=−4
2) 3x3 행렬의 행렬식
- 3x3 행렬 A에 대하여, 행렬식은 Sarrus 규칙을 사용하여 계산할 수 있다.
- 첫 두 열을 행렬 오른쪽에 다시 쓴 다음, 대각선 방향으로 곱한 값들을 더하고 빼는 방식으로 계산한다.
A=adgbehcfi
det(A)=(aei+bgf+cdh)−(ceg+afh+bdi)
- 이를 정리하면 다음과 같이 표현할 수도 있다.
det(A)=a(ei−fh)−b(di−fg)+c(dh−eg)
- 예를 들어, 행렬 B가 다음과 같다면 행렬식의 값은 다음과 같이 계산된다.
B=210010−2−21
210010−2−21210010
(2⋅1⋅1)+(0⋅−2⋅0)+(−2⋅1⋅0)=2
(−2⋅1⋅0)+(2⋅−2⋅0)+(0⋅1⋅1)=0
det(B)=2−0=2
3) 일반적인 n x n 행렬의 행렬식 (여인수 전개)
- 더 큰 크기의 행렬이나 일반적인 경우의 행렬식은 여인수 전개(Cofactor Expansion)를 사용하여 계산한다.
- 어떤 행 i 또는 열 j를 선택하여 다음과 같이 전개할 수 있다.
- n×n 행렬 A가 다음과 같다면,
A=a11a21⋮an1a12a22⋮an2⋯⋯⋱⋯a1na2n⋮ann
- 첫 번째 행을 기준으로 여인수 전개를 하면 다음과 같다.
det(A)=a11C11+a12C12+⋯+a1nC1n
- 여기서 Cij는 여인수(Cofactor) 이고 다음과 같다.
Cij=(−1)i+jMij
- Mij는 aij의 소행렬식(Minor) 으로, aij가 포함된 행과 열을 제거하고 남은 (n−1)×(n−1) 행렬의 행렬식을 말한다.
- 즉, 2×2 부터 n×n 까지 위 과정을 재귀적으로 계산하며 행렬식을 구할 수 있다.
4) 가우스 소거법을 이용한 행렬식 계산
- 여인수 전개를 통한 행렬식 계산은 행렬의 크기가 커질 수록 계산량이 매우 증가하므로 실제 계산에서는 가우스 소거법을 주로 이용한다.
- Python - Numpy 라이브러리 등에서는 LU 분해 방법을 주로 사용하여 행렬식을 계산한다.
- 정방 행렬을 가우스 소거법을 통해 아래 형태로 변환하여 행렬식을 쉽게 계산할 수 있다.
A=a11a21a31a12a22a32a13a23a33
- 이 행렬을 가우스 소거법을 통해 다음과 같이 삼각 행렬로 만들 수 있다.
U=u1100u12u220u13u23u33
- 삼각 행렬에서는 행렬식을 다음과 같이 대각선 원소를 모두 곱하여 구할 수 있다.
det(U)=u11u22u33
det(U)=u11u22⋯unn
- 단, 가우스 소거 과정에서 다음 연산이 포함되어 있다면 행렬식에도 반영해야 한다.
| 연산 | 행렬식 변화 |
|---|
| 두 행 교환 | 부호가 바뀜 |
| 한 행에 상수 k를 곱함 | 행렬식에도 k를 곱함 |
| 다른 행의 배수를 더함 | 행렬식 변화 없음 |
행렬식의 기하학적 의미
- 행렬식은 단순히 넓이나 부피를 계산하는 공식이 아니라 선형변환의 본질적인 크기 변화와 방향 변화를 나타내는 값.
- 행렬은 벡터 공간에서 벡터를 다른 벡터로 매핑하는 선형 변환으로 볼 수 있다.
- 즉, 어떤 벡터 x에 행렬 A를 곱하는 것은 x를 새로운 벡터 Ax로 변화하는 과정이다.
x→Ax
- 행렬 A가 선형 변환이 되려면 임의의 벡터 u,v와 스칼라 c에 대해 다음 조건을 만족해야 한다.
- 가산성 (덧셈의 보존) : A(u+v)=Au+Av
- 동차성 (스칼라곱의 보존) : A(cu)=cAu
- 원점의 보존 : A0=0 (평행이동은 원점을 보존하지 않으므로 선형 변환이 아니다)
- 좌표평면을 예로 들면, 선형 변환은 격자선이 여전히 평행하고 균일한 간격을 유지한 채로 공간을 늘이거나 줄이거나 비트는 변환을 의미한다. 선형 변환 행렬의 행렬식(det)은 변환에 의해 면적이나 부피가 얼마나 변하는지 그 비율을 나타냅니다.
- 특히, 단위 벡터(Standard Basis Vectors) 가 행렬에 의해 어떻게 변환되는지를 살펴보면, 이 변환이 공간에 미치는 영향을 시각적으로 이해할 수 있다.
1. 면적/부피의 스케일
- 행렬식의 절댓값은 크기 및 넓이 또는 부피의 변화를 나타낸다.
- 예를 들어, 2차원 공간에서 단위 면적이 1인 단위 정사각형이 행렬 A에 의해 변환되면, 변환된 도형의 면적은 ∣det(A)∣가 된다.
- 3차원 공간에서 부피가 1인 단위 정육면체가 행렬 A에 의해 변한되면, 변환된 도형의 부피는 ∣det(A)∣가 된다.
- 즉 만약 행렬식의 값이 2라면, 해당 선형 변환은 공간을 원래 크기의 2배로 확장시킨다는 의미이다.
-행렬식_image_1.gif)
2. 방향 변화
- 행렬식의 부호는 선형 변환이 공간의 방향을 유지하는지 또는 뒤집는지를 나타냅니다.
- det(A)>0 : 변환이 공간의 방향을 유지한다 (회전, 확대 등)
- det(A)<0 : 변환이 공간의 방향을 뒤집는다 (반사 등)
-행렬식_image_2.gif)
3. 행렬식이 0일 때
- det(A)=0 이라는 것은 즉 넓이나 부피가 0이 되어, 2차원 평면이 선이나 점으로, 3차원 공간이 평면으로
- 공간이 한 차원 아래로 축소되었기 때문에 이를 다시 원래대로 돌리는 방법 즉, 역행렬이 존재하지 않게 된다.
- (역행렬 공식)
A=(acbd), A−1=det(A)1(d−c−ba)
참고