유사역행렬·최소제곱해 계산기
정사각이 아니거나 특이한 행렬의 무어–펜로즈 유사역행렬 A⁺를 SVD로 구하고 Ax = b의 최소제곱해를 냅니다. 해가 없으면 잔차를 가장 작게, 해가 무수히 많으면 길이가 가장 짧은 해를 준다는 두 성질을 실제 값으로 확인시켜 줍니다.
한 줄에 한 행씩, 공백이나 쉼표로 나눕니다. 6×6 까지
행의 수만큼 적습니다
σ ≤ 문턱 × σ_max이면 0으로 봅니다. 지금 1.0000×10^-10
식이 미지수보다 많습니다 — 최소제곱해
‖x‖ = 2.266483
잔차 ‖Ax − b‖ = 0.20412 · 식이 서로 어긋나 완전한 해가 없습니다 · 계수 2
| 1.333333 | 0.333333 | -0.666667 |
| -0.5 | -0 | 0.5 |
2×3 행렬입니다
| 0.966667 | 2.05 |
| ① AA⁺A = A | 9.9920×10^-16 |
| ② A⁺AA⁺ = A⁺ | 2.2204×10^-15 |
| ③ (AA⁺)ᵀ = AA⁺ | 1.1102×10^-16 |
| ④ (A⁺A)ᵀ = A⁺A | 1.7764×10^-15 |
10⁻¹⁰보다 크면 특이값이 너무 작아 수치적으로 무너진 것입니다
계산 방법
- 1행렬 A를 한 줄에 한 행씩 적습니다. 정사각이 아니어도 됩니다.
- 2우변 b를 적으면 최소제곱해 x = A⁺b가 나옵니다. 비워 두면 A⁺만 냅니다.
- 3«잔차 ‖Ax − b‖»가 0이 아니면 식이 서로 어긋난다는 뜻입니다.
- 4영공간이 있으면 «다른 해의 길이»와 견줘 A⁺b가 가장 짧은 해임을 확인합니다.
- 5문턱값을 1e-6과 1e-14로 바꿔 가며 ‖x‖가 얼마나 튀는지 보십시오.
자주 묻는 질문
역행렬을 정사각이 아니거나 특이한 행렬까지 넓힌 것입니다. 보통의 역행렬은 정사각이고 특이하지 않아야 있지만, 무어–펜로즈 유사역행렬 A⁺는 어떤 행렬에도 언제나 하나 있습니다. 정사각이고 특이하지 않으면 A⁺ = A⁻¹이 되어 보통의 역행렬과 같아집니다.
세 경우를 한 식으로 덮습니다. 해가 없으면(식이 미지수보다 많고 서로 어긋나면) 잔차 ‖Ax − b‖를 가장 작게 만드는 최소제곱해를, 해가 무수히 많으면(미지수가 식보다 많으면) 그중 길이 ‖x‖가 가장 짧은 해를, 정칙계라면 그냥 A⁻¹b를 줍니다.
A = UΣVᵀ로 특이값 분해한 뒤 A⁺ = VΣ⁺Uᵀ로 구합니다. Σ⁺는 0이 아닌 특이값을 1/σ로 바꾼 것이고, 0인 특이값은 뒤집지 않고 그대로 0으로 둡니다. 이 «뒤집지 않고 버린다»는 결정 하나가 최소제곱과 최소노름을 동시에 만들어 냅니다.
실수 계산에서 특이값이 정확히 0이 되는 일이 거의 없기 때문입니다. 이론상 0이어야 할 값이 10⁻¹⁶쯤으로 남는데 그것을 뒤집으면 10¹⁶이 되어 잡음이 통째로 증폭됩니다. 그래서 «이보다 작으면 0으로 본다»는 기준이 필요하고, 그 기준이 계수(rank)를 정하고 답을 정합니다. 문턱값을 밝히지 않은 유사역행렬 결과는 다른 결과와 견줄 수 없습니다.
AA⁺A = A, A⁺AA⁺ = A⁺, (AA⁺)ᵀ = AA⁺, (A⁺A)ᵀ = A⁺A 네 가지입니다. 이 넷을 모두 만족하는 행렬은 유일하며, 그것이 유사역행렬의 정의입니다. 이 계산기는 넷을 실제로 계산해 어긋난 정도를 보여 주므로, 값이 10⁻¹⁰보다 크면 특이값이 너무 작아 수치적으로 무너졌다고 보면 됩니다.
수학적으로는 A의 열이 일차독립일 때 같은 값이지만 수치적으로는 SVD 쪽이 훨씬 안전합니다. AᵀA를 만드는 순간 조건수가 제곱되어 정밀도가 절반으로 깎이고, 계수가 모자라면 AᵀA 자체가 특이해져 아예 풀리지 않습니다. SVD로 구하면 두 문제가 모두 없습니다.
최소제곱 회귀가 바로 이 계산입니다. 데이터 점이 미지수보다 많아 직선이 모든 점을 지날 수 없을 때, 잔차의 제곱합을 가장 작게 만드는 계수를 구하는 것이 x = A⁺b입니다. 이 계산기에 「1 x」 꼴의 행렬과 y값을 넣으면 회귀 직선의 절편과 기울기가 그대로 나옵니다.
전송되지 않습니다. 계산은 모두 브라우저 안에서 이루어지며 입력한 행렬은 이 기기에만 남습니다.
알아두면 좋은 점
- 행렬은 6×6까지 다룹니다. 눈으로 확인하는 것이 목적인 계산기입니다.
- SVD를 AᵀA의 고윳값 분해로 구하므로 조건수가 제곱됩니다. 특이값이 σ_max의 10⁻⁸배보다 작아지면 그 값 자체를 믿지 마십시오.
- 문턱값은 σ_max에 대한 상대값입니다. 기본값 10⁻¹⁰은 관례일 뿐 절대 기준이 아니며, 자료의 잡음 수준에 맞춰 정해야 합니다.
- 복소수 행렬은 다루지 않습니다. 실수 행렬만 넣을 수 있습니다.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 2일 · 결과는 참고용 추정치입니다.