이 계산기의 기능
이 도구는 임의의 실수 n×m 행렬 \(A = \{a_{ij}\}\)에 대해 가장 널리 쓰이는 네 가지 행렬 노름을 계산합니다. L1 노름(각 열의 절댓값 합 중 최댓값), L2 / 스펙트럼 노름(최대 특이값), 프로베니우스 노름(모든 원소 제곱합의 제곱근), 그리고 L∞ 노름(각 행의 절댓값 합 중 최댓값)이 그것입니다. 행렬 노름은 행렬의 "크기"와, 행렬이 벡터를 늘릴 수 있는 최대 배율을 나타내므로 수치 선형대수학, 최적화, 머신러닝, 안정성 해석 등에서 필수적으로 쓰입니다. 이는 순수 수학이며 어디서나 동일하게 적용됩니다.
사용 방법
행의 개수(\(n\))와 열의 개수(\(m\))를 설정한 뒤, 한 행을 한 줄에 입력하고 각 원소는 공백이나 쉼표로 구분해 텍스트 상자에 행렬을 입력하세요. 비어 있는 칸은 0으로 처리됩니다. 표시할 유효 숫자 자릿수를 선택하면 네 가지 노름이 모두 계산되어 나옵니다. 각 공식은 필요한 부분에서 절댓값을 사용하므로 음수 원소도 자동으로 올바르게 처리됩니다.
공식 설명
1-노름은 각 열을 따라 절댓값을 더한 뒤 그 합이 가장 큰 값을 취합니다. $$\|\text{A}\|_{1} = \max_{1 \le j \le m} \sum_{i=1}^{n} |a_{ij}|$$ ∞-노름은 같은 방식을 각 행에 대해 적용합니다. $$\|\text{A}\|_{\infty} = \max_{1 \le i \le n} \sum_{j=1}^{m} |a_{ij}|$$ 프로베니우스 노름은 행렬을 하나의 벡터로 펼친 뒤 그 유클리드 길이, 즉 모든 원소의 제곱합의 제곱근을 구합니다. $$\|\text{A}\|_{F} = \sqrt{\sum_{i=1}^{n} \sum_{j=1}^{m} a_{ij}^{2}}$$ 스펙트럼 노름은 최대 특이값 \(\sigma_{\max}(\text{A})\)와 같으며, 이는 대칭인 그람 행렬 \(\text{A}^{\mathsf{T}}\text{A}\)의 최대 고윳값의 제곱근으로 구해집니다. $$\|\text{A}\|_{2} = \sigma_{\max}(\text{A}) = \sqrt{\lambda_{\max}\!\left(\text{A}^{\mathsf{T}}\text{A}\right)}$$ 이 고윳값은 거듭제곱 반복법(power iteration)으로 계산합니다. 모든 원소가 0인 행렬은 모든 노름이 즉시 0이 됩니다.
예제 풀이
\(A = [[1, 2], [3, 4]]\)인 경우: 열의 합은 각각 4와 6이므로 L1 노름은 6입니다. 행의 합은 각각 3과 7이므로 L∞ 노름은 7입니다. 프로베니우스 노름은 \(\sqrt{1+4+9+16} = \sqrt{30} = 5.4772255751\)입니다. 그람 행렬 \(\text{A}^{\mathsf{T}}\text{A} = [[10,14],[14,20]]\)의 고윳값은 $$\lambda^{2} - 30\cdot\lambda + 4 = 0$$ 을 풀어 구하며, \(\lambda_{\max} = 29.8660687473\)이 됩니다. 따라서 스펙트럼 노름은 \(\sqrt{29.8660687473} = 5.4649857042\)입니다.
자주 묻는 질문
스펙트럼 노름과 프로베니우스 노름은 같은가요? 랭크가 1인 행렬(예: 단일 행 또는 열 벡터)에서만 같습니다. 일반적으로 \(\text{norm2}\)는 \(\text{normF}\) 이하이며, \(\text{normF}\)는 다시 \(\text{norm2}\)의 \(\sqrt{\text{rank}}\)배 이하입니다.
복소수 행렬은 어떻게 하나요? 절댓값을 사용하는 부분에서는 각 원소를 그 크기(절댓값)로 바꾸고, 스펙트럼 노름에서는 켤레 전치(conjugate transpose)를 사용하면 됩니다. 이 계산기는 실수 행렬을 대상으로 합니다.
왜 L1 노름은 열을, L∞ 노름은 행을 사용하나요? 이들은 각각 L1 벡터 노름과 L∞ 벡터 노름에서 유도된 작용소(operator) 노름이며, 그 결과가 각각 최대 열 합과 최대 행 합으로 정리되기 때문입니다.