🧮
🧮 수학·통계

SVD 계산기 (특이값 분해 A = U·Σ·Vᵀ)

입력하면 바로 계산됩니다.

입력값

특잇값 분해(SVD) 계산기 쉽게 이해하기 — 개념과 원리

이 계산기는 모든 행렬의 특잇값 분해 A = U·Σ·Vᵀ를 구합니다. 특잇값, 왼쪽 특이벡터 U, 대각행렬 Σ, 오른쪽 특이벡터 V, 계수, 얇은 분해의 크기를 보여 줍니다. 선형대수 수업, 데이터 압축, 주성분분석, 최소제곱, 신호처리에 씁니다.

2×3 행렬의 특잇값 분해A = U · Σ · VᵀA (2×3)1−13311=U.707−.707.707.707Σ4002.449V.707.5770.577.707−.577회전 → 늘림 → 회전AAᵀ = [11 5; 5 11] → 16, 6σ₁, σ₂4, 2.44949σ = √16, √6 · 랭크 2
특잇값 4와 √6은 AAᵀ의 고윳값 16과 6의 제곱근입니다.

계산 방법

단측 야코비 방법으로 계산하며, 각 vᵢ의 가장 큰 성분이 양수가 되도록 부호를 정합니다. 특이벡터는 이런 부호 뒤집기(그리고 같은 특잇값 안에서의 회전)만큼은 유일하지 않습니다.

원리

모든 선형사상은 세 단계로 나눌 수 있습니다. 회전 또는 반사(Vᵀ), 서로 수직인 축을 따른 늘림(Σ), 다시 회전 또는 반사(U)입니다. 특잇값 분해가 이 단계를 찾아냅니다. 오른쪽 특이벡터는 A가 서로 수직인 출력 방향으로 보내는 입력 방향이고, 특잇값은 늘림 배율입니다. 큰 특잇값 몇 개만 남기면 A에 가장 가까운 낮은 계수 근사가 되며, 이것이 이미지 압축과 주성분분석의 바탕입니다.

예제 풀이

기본 행렬은 A = [1 −1 3; 3 1 1]입니다.

  1. AAᵀ = [11 5; 5 11]의 고윳값은 16과 6이므로 σ = 4, 2.44949(√6)입니다.
  2. v₁ = (1, 0, 1)/√2 ≈ (0.707107, 0, 0.707107), v₂ = (1, 1, −1)/√3 ≈ (0.57735, 0.57735, −0.57735)
  3. u₁ = A·v₁ ÷ 4 = (4/√2, 4/√2) ÷ 4 = (0.707107, 0.707107)
  4. u₂ = A·v₂ ÷ √6 = (−3/√3, 3/√3) ÷ √6 ≈ (−0.707107, 0.707107)
  5. Σ = [4 0; 0 2.44949], 계수 2, 크기는 U 2×2, Σ 2×2, V 3×2입니다.

결과 해석

0이 아닌 특잇값의 개수가 계수입니다. σ₁ ÷ σ_k는 행렬이 계수를 잃는 상태에 얼마나 가까운지 보여 줍니다. 각 항 σᵢ·uᵢ·vᵢᵀ는 A의 계수 1인 조각이며, 특잇값이 빠르게 작아지면 앞의 몇 항이 A의 대부분을 담습니다. 프로그램마다 uᵢ, vᵢ 한 쌍의 부호가 반대로 나올 수 있지만 둘 다 맞습니다. 검산하려면 U·Σ·Vᵀ를 직접 곱해 원래 행렬이 나오는지 확인하면 됩니다.

흔한 실수

주의: 결과는 수치 근삿값입니다. 아주 작은 특잇값은 반올림 잡음일 수 있으므로 σ₁에 대한 허용오차를 정한 뒤 0으로 볼지 판단하십시오.

자주 묻는 질문

특잇값 분해와 고유분해는 어떻게 다른가요?

특잇값 분해는 모든 행렬에 존재하고 두 개의 정규직교기저를 쓰며, 고유분해는 정사각행렬이 필요하고 존재하지 않을 수도 있습니다.

압축에는 어떻게 쓰나요?

큰 특잇값 r개와 그 벡터만 남기면 최소제곱 의미에서 가장 좋은 계수 r 근사가 됩니다.

프로그램마다 부호가 다른 이유는 무엇인가요?

uᵢ와 vᵢ의 부호를 함께 바꿔도 곱이 같으므로 두 결과 모두 맞습니다.

출처: Coordinated Linear Algebra (University of Nebraska–Lincoln), §7.7 Singular Value Decomposition · J. Demmel, UC Berkeley Math 221, Lecture 3 (Fall 2011)

2026년 11월 8일 확인. Coordinated Linear Algebra (University of Nebraska–Lincoln), §7.7 Extra Topic: Singular Value Decomposition — 정의 7.7.1 (특이값 = AᵀA의 양의 고윳값의 제곱근), 정리 7.7.3 (직교행렬 U, V로 A = UΣVᵀ), 예제 7.7.5 (기본 행렬: σ₁ = 4, σ₂ = √6); J. Demmel, UC Berkeley Math 221, Lecture 3 (2011년 가을).

🧮 수학·통계 계산기 전체 →🏠 홍라이프 계산기 홈 →