대칭 행렬
대칭 행렬 (Symmetric Matrix)
대칭 행렬이란 실수 성분을 가진 정사각 행렬 $A$에 대하여, 행렬을 전치(Transpose)시킨 결과가 원래의 행렬과 동일한 행렬, 즉 $A = A^T$를 만족하는 행렬을 말한다.
1. 정의 및 기본 개념
1.1 수학적 정의
행렬 $A$가 $n \times n$ 정사각 행렬일 때, $A$의 $i$행 $j$열 원소를 $a_{ij}$라고 하자. 이때 모든 $i, j$에 대하여 다음 조건을 만족하면 $A$를 대칭 행렬이라고 정의한다. $$a_{ij} = a_{ji}$$ 여기서 전치 행렬($A^T$)이란 행과 열을 서로 바꾼 행렬을 의미하며, 대칭 행렬은 주대각선(Main Diagonal)을 축으로 하여 거울을 본 듯이 원소들이 배치된 형태를 띤다.
1.2 일반형 수식
대칭 행렬의 구조를 파악하기 위한 2차 및 3차 행렬의 일반형은 다음과 같다.
2차 대칭 행렬: $$A = \begin{pmatrix} a & b \\ b & c \end{pmatrix}$$
3차 대칭 행렬: $$A = \begin{pmatrix} a & b & c \\ b & d & e \\ c & e & f \end{pmatrix}$$ 위 수식에서 볼 수 있듯이, 주대각선 성분($a, d, f$ 등)을 제외한 나머지 성분들이 서로 대칭 위치에서 동일한 값을 가짐을 알 수 있다.
2. 대칭 행렬의 판별법
어떤 행렬 $A$가 대칭 행렬이기 위해서는 다음의 조건을 만족해야 한다.
- 정사각 행렬 조건: 행의 개수와 열의 개수가 동일해야 한다. 비정사각 행렬은 정의상 대칭 행렬이 될 수 없다.
- 원소의 대칭성: 모든 $i, j$에 대해 $a_{ij} = a_{ji}$가 성립해야 한다. 즉, 주대각선을 기준으로 마주 보는 위치의 원소들이 모두 일치해야 한다.
- 전치 행렬과의 일치: 행렬 $A$를 전치시킨 결과인 $A^T$가 원래의 행렬 $A$와 완전히 동일해야 한다.
3. 주요 성질
대칭 행렬은 일반적인 정사각 행렬과 구별되는 강력한 대수적 특징을 가진다.
3.1 주요 특징
- 고윳값의 실수성: 실수 성분을 가진 대칭 행렬의 모든 고윳값(Eigenvalue)은 항상 실수이다.
- 고유벡터의 직교성: 서로 다른 고윳값에 대응하는 고유벡터(Eigenvector)들은 서로 직교(Orthogonal)한다.
- 합과 곱: 두 대칭 행렬 $A, B$의 합 $A+B$는 항상 대칭 행렬이다. 하지만 곱 $AB$는 $AB=BA$ (교환 법칙 성립)일 때만 대칭 행렬이 된다.
3.2 일반 행렬 vs 대칭 행렬 비교
| 구분 | 일반 정사각 행렬 | 대칭 행렬 |
|---|---|---|
| 정의 | $n \times n$ 행렬 | $A = A^T$ |
| 고윳값 | 복소수일 수 있음 | 항상 실수 |
| 고유벡터 | 선형 독립일 수 있음 | 서로 직교함 (직교 기저 형성) |
| 대각화 | 조건부 가능 (Diagonalizable) | 항상 직교 대각화 가능 |
4. 고윳값 분해와 직교 대각화
4.1 스펙트럼 정리 (Spectral Theorem)
실수 대칭 행렬의 가장 핵심적인 성질은 스펙트럼 정리로 요약된다. 이 정리에 따르면, 모든 실수 대칭 행렬 $A$는 직교 행렬 $P$와 대각 행렬 $D$를 이용하여 다음과 같이 분해될 수 있다. $$A = PDP^T$$ 여기서 $P$는 $A$의 정규화된 고유벡터들을 열로 가지는 직교 행렬($P^T P = I$)이며, $D$는 $A$의 고윳값들을 대각 성분으로 가지는 대각 행렬이다.
4.2 증명 과정 요약
여기서 $\langle \cdot, \cdot \rangle$은 표준 내적(Standard Inner Product)을 의미한다. 스펙트럼 정리의 증명은 일반적으로 다음과 같은 논리 흐름을 따른다. 1. 실수 고윳값 증명: 복소 공액(Complex Conjugate)을 이용하여 $\bar{\lambda} \langle v, v \rangle = \langle Av, v \rangle = \langle v, Av \rangle = \lambda \langle v, v \rangle$임을 보여 $\lambda = \bar{\lambda}$ (즉, $\lambda$는 실수)임을 증명한다. 2. 직교성 증명: 서로 다른 두 고윳값 $\lambda_1, \lambda_2$에 대응하는 고유벡터 $v_1, v_2$에 대해 $\lambda_1 \langle v_1, v_2 \rangle = \langle Av_1, v_2 \rangle = \langle v_1, Av_2 \rangle = \lambda_2 \langle v_1, v_2 \rangle$임을 이용하여, $\lambda_1 \neq \lambda_2$일 때 $\langle v_1, v_2 \rangle = 0$임을 보인다. 3. 수학적 귀납법: 행렬의 차원을 줄여가며(Deflation) 모든 고유공간의 합이 전체 공간 $\mathbb{R}^n$이 됨을 보여 직교 행렬 $P$의 존재를 확정한다.
5. 관련 행렬 및 확장 개념
- 에르미트 행렬 (Hermitian Matrix): 대칭 행렬의 복소수 확장판이다. 켤레 전치(Conjugate Transpose)에 대해 $A = A^*$를 만족하는 행렬을 말한다.
- 양의 정부호 행렬 (Positive Definite Matrix): 대칭 행렬 $A$에 대해, 0이 아닌 모든 벡터 $x$에 대하여 $x^T Ax > 0$을 만족하는 행렬이다. 모든 고윳값이 양수라는 특징이 있다.
- 반정부호 행렬 (Semi-definite Matrix): $x^T Ax \ge 0$을 만족하며, 고윳값이 0 이상인 경우를 말한다.
- 교대 행렬 (Skew-Symmetric Matrix): 대칭 행렬과 반대되는 개념으로, 전치했을 때 부호가 반전되는 행렬, 즉 $A^T = -A$를 만족하는 행렬이다. 모든 주대각 성분은 반드시 0이어야 하며, 고윳값은 0이거나 순허수 형태를 띤다.
6. 주요 활용 사례
- 통계학 (공분산 행렬): 변수 간의 상관관계를 나타내는 공분산 행렬(Covariance Matrix)은 항상 대칭 행렬이다.
- 데이터 분석 (PCA): 주성분 분석(Principal Component Analysis)은 공분산 행렬의 고윳값 분해를 통해 데이터의 분산이 최대가 되는 방향(주성분)을 찾는 기법이다.
- 물리학/공학 (응력 텐서): 재료 역학에서 물체 내부의 힘의 분포를 나타내는 응력 텐서(Stress Tensor)는 평형 조건에 의해 대칭 행렬의 형태를 띤다.
- 최적화 (Hessian 행렬): 다변수 함수의 2차 편미분 값들로 구성된 헤세 행렬(Hessian Matrix)은 함수가 매끄러울 때 대칭 행렬이 되며, 극값 판별에 사용된다.
7. 계산 예제
7.1 수치 계산 과정
다음 행렬 $A$가 대칭 행렬인지 확인하고 고윳값을 구하는 과정이다. $$A = \begin{pmatrix} 2 & 1 \\ 1 & 2 \end{pmatrix}$$
- 대칭성 확인: $a_{12} = 1, a_{21} = 1$이므로 $A = A^T$이다. (대칭 행렬)
- 특성 방정식: $\det(A - \lambda I) = 0$ $$\begin{vmatrix} 2-\lambda & 1 \\ 1 & 2-\lambda \end{vmatrix} = (2-\lambda)^2 - 1 = \lambda^2 - 4\lambda + 3 = 0$$
- 고윳값 계산: $(\lambda-1)(\lambda-3) = 0 \implies \lambda_1 = 1, \lambda_2 = 3$
- 고유벡터 계산:
- $\lambda=1$일 때: $(A-I)v=0 \implies \begin{pmatrix} 1 & 1 \\ 1 & 1 \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} = 0 \implies v_1 = \begin{pmatrix} 1 \\ -1 \end{pmatrix}$
- $\lambda=3$일 때: $(A-3I)v=0 \implies \begin{pmatrix} -1 & 1 \\ 1 & -1 \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} = 0 \implies v_2 = \begin{pmatrix} 1 \\ 1 \end{pmatrix}$
- 결과적으로 $v_1 \cdot v_2 = 1(1) + (-1)(1) = 0$으로 두 벡터는 직교한다.
추가 예시 (3차 대칭 행렬): $$B = \begin{pmatrix} 1 & 2 & 3 \\ 2 & 4 & 5 \\ 3 & 5 & 6 \end{pmatrix}$$ 위 행렬 $B$는 $b_{12}=b_{21}=2, b_{13}=b_{31}=3, b_{23}=b_{32}=5$로 모든 대칭 위치의 원소가 일치하므로 대칭 행렬이다.
7.2 Python 구현 예제
<a href="/doc/%EA%B8%B0%EC%88%A0/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/Python/NumPy" class="wiki-link">NumPy</a> 라이브러리를 사용하여 대칭 행렬을 생성하고 대각화하는 코드이다.
import numpy as np
# 1. 대칭 행렬 생성
A = np.array([[2, 1],
[1, 2]])
# 2. 전치 행렬과 비교하여 대칭성 확인
is_symmetric = np.array_equal(A, A.T)
print(f"Is Symmetric: {is_symmetric}")
# 3. 고윳값(eigenvalues) 및 고유벡터(eigenvectors) 계산
# np.linalg.eigh는 'h' (Hermitian)의 약자로, 대칭 행렬 및 에르미트 행렬 전용 함수이다.
# 일반적인 np.linalg.eig보다 계산 효율이 높고 수치적 안정성이 뛰어나다.
eigenvalues, eigenvectors = np.linalg.eigh(A)
print("Eigenvalues:\n", eigenvalues)
print("Eigenvectors:\n", eigenvectors)
# 4. 직교 대각화 검증 (A = P * D * P.T)
P = eigenvectors
D = np.diag(eigenvalues)
A_reconstructed = P @ D @ P.T
print("Reconstructed A:\n", A_reconstructed)
이 문서는 AI 모델(gemma-4-31b)에 의해 생성된 콘텐츠입니다.
주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.