조건수 계산기 - 행렬 조건과 안정성
1-노름, 무한노름, Frobenius 노름으로 2×2 또는 3×3 행렬의 조건수를 계산합니다. 선형 시스템의 수치 안정성을 빠르게 진단하세요.
행렬 크기와 노름을 선택하고 행렬 값을 입력하면, 계산기가 κ(A) = ‖A‖ · ‖A⁻¹‖를 반환하고 행렬의 조건 상태를 해석해 줍니다.
조건수 계산기 - 행렬 조건과 안정성
1-노름, 무한노름, Frobenius 노름으로 2×2 또는 3×3 행렬의 조건수를 계산합니다. 선형 시스템의 수치 안정성을 빠르게 진단하세요.
조건수 계산기 소개
가역 행렬 A의 조건수는 κ(A) = ‖A‖ · ‖A⁻¹‖로 정의되며, 여기서 ‖·‖는 호환되는 임의의 행렬 노름입니다. 이는 선형 시스템 A·x = b의 해 x에서 상대 오차가 오른쪽 항 b의 상대 오차로 얼마나 증폭될 수 있는지를 나타냅니다. 직관적으로 조건수가 작은 행렬은 조건이 좋아서 입력의 작은 오차가 출력의 작은 오차로 끝납니다. 조건수가 큰 행렬은 조건이 나빠서 데이터에 있는 아주 미세한 부동소수점 반올림 오차만으로도 해가 크게 틀어질 수 있습니다.
이 계산기는 2 × 2 및 3 × 3 행렬과 가장 널리 쓰이는 세 가지 행렬 노름을 지원합니다. 1-노름은 절댓값 열합의 최대값으로, ‖A‖₁ = max_j Σᵢ |aᵢⱼ|입니다. 무한노름은 절댓값 행합의 최대값으로, ‖A‖∞ = max_i Σⱼ |aᵢⱼ|입니다. Frobenius 노름은 모든 원소 제곱합의 제곱근으로, ‖A‖_F = √(Σᵢⱼ |aᵢⱼ|²)이며 유클리드 벡터 노름의 행렬 버전입니다. 2 × 2 행렬의 역행렬은 해석적으로 A⁻¹ = (1/det A) · [[d, −b], [−c, a]]로 계산됩니다. 3 × 3 행렬에는 여인수(수반행렬) 공식을 사용합니다.
조건수는 수치 선형대수의 핵심 개념입니다. 컴퓨터에서 LU 분해나 가우스 소거법으로 선형 시스템을 풀 때 계산된 해의 상대 오차는 대략 κ(A) · ε로 상계되며, ε는 기계 정밀도입니다(IEEE-754 배정밀도에서 약 10⁻¹⁶). 따라서 조건수가 10⁶이면 반올림 오차만으로 최대 6자리의 정확도를 잃을 수 있습니다. 대략적인 기준으로 κ < 100은 조건이 좋은 편, 100에서 1000 사이는 중간, 10³을 넘으면 조건이 나빠서 주의가 필요합니다.
중요한 주의점도 있습니다. 조건수는 선택한 노름에 따라 달라지므로 서로 다른 노름으로 계산한 값은 직접 비교할 수 없지만, 보통은 작은 상수 배 이내입니다. 특이값에 기반한 2-노름(스펙트럴 노름) 조건수는 이론적으로 가장 자연스럽지만 계산 비용이 더 크고 여기서는 제공하지 않습니다. 특이행렬은 행렬식이 정확히 0이며 역행렬이 없어서 조건수는 무한대입니다. 계산기는 이 경우를 명확히 감지합니다.
작은 선형 시스템을 수치적으로 안전하게 역행렬화할 수 있는지 확인할 때, 기초 수치해석을 가르칠 때, 또는 더 큰 시뮬레이션이나 머신러닝 파이프라인에서 시스템을 풀기 전에 빠르게 점검할 때 이 도구를 사용하세요.
작업 예시
조건이 좋은 것부터 나쁜 것까지 보여 주는 예시 행렬들입니다.
| 행렬(2×2 또는 3×3) | 조건수 | 비고 |
|---|---|---|
| [[1, 0], [0, 1]], 1-norm | κ = 1 | 단위행렬은 완전히 조건이 좋습니다. 어떤 표준 노름을 써도 조건수는 1입니다. |
| [[2, 1], [1, 3]], Frobenius | κ ≈ 3.0 | 조건수가 작은 대칭 양의 정부호 행렬입니다. 이 행렬이 들어간 선형 시스템은 정확하게 풀기 쉽습니다. |
| [[1, 1], [1, 1.0001]], infinity-norm | κ ≈ 40004 | 거의 특이한 행렬입니다. (2,2) 항의 아주 작은 변화만으로도 해가 크게 달라집니다. |
| [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 1-norm | κ ≈ 380 | 중간 정도의 조건을 가진 3×3 행렬입니다. 단정밀도 부동소수점에서는 약간의 정밀도 손실이 예상됩니다. |
조건수 계산기 사용법
- 행렬 크기를 2 × 2 또는 3 × 3 중에서 고릅니다.
- 사용할 행렬 노름을 1-노름, 무한노름, Frobenius 노름 중에서 선택합니다.
- 각 행렬 원소를 해당 칸에 입력합니다.
- 조건수 계산을 클릭합니다. 결과 패널에는 κ(A), 행렬 노름, 역행렬 노름, 행렬식, 그리고 쉬운 설명이 표시됩니다.
- 초기화를 클릭하면 모든 입력이 지워지고 새 행렬로 시작할 수 있습니다.
조건수 FAQ
조건수는 무엇을 알려 주나요?
선형 시스템 A·x = b에서 오른쪽 항 b의 상대 오차가 해 x에서 얼마나 증폭될 수 있는지의 상한을 알려 줍니다. 조건수가 10^k이면 반올림 오차만으로 최대 k자리의 정확도를 잃을 수 있습니다.
좋은 조건수는 어느 정도인가요?
일반적으로 100 미만이면 조건이 좋고, 100~1000은 중간, 1000 초과는 조건이 나쁜 것으로 봅니다. 기준은 연산 정밀도와 최종 결과에 필요한 정확도에 따라 달라집니다.
어떤 노름을 써야 하나요?
1-노름과 무한노름은 계산이 빠르고 정보도 매우 비슷합니다. Frobenius 노름도 계산이 쉽고 유클리드 벡터 노름의 행렬 대응입니다. 스펙트럴(2-노름) 조건수는 이론적으로 가장 자연스럽지만 더 비싸고 여기서는 제공하지 않습니다.
왜 제 행렬이 특이행렬로 표시되나요?
행렬식이 0이거나 수치적으로 0과 구별되지 않을 정도로 작을 때(10⁻¹⁰ 미만) 특이행렬입니다. 특이행렬은 역행렬이 없으므로 조건수는 무한대이고, A·x = b는 해가 없거나 무한히 많습니다.
조건수는 오른쪽 항 b에 의존하나요?
아니요. 조건수는 행렬 A에만 의존합니다. 어떤 b를 선택하든 b의 상대 오차가 최악의 경우 얼마나 증폭되는지에 대한 상한을 제공합니다.
조건수가 1보다 작을 수 있나요?
아니요. 어떤 호환 가능한 행렬 노름에 대해서도 κ(A) = ‖A‖ · ‖A⁻¹‖ ≥ ‖A · A⁻¹‖ = ‖I‖ ≥ 1입니다. 최소값 1은 직교행렬(2-노름에서는 유니터리 행렬)에서 달성됩니다.