그람-슈미트 계산기 쉽게 이해하기 — 개념과 원리
이 계산기는 그람-슈미트 과정으로 벡터들을 같은 공간의 정규직교기저로 바꿉니다. 크기를 맞추기 전의 직교 벡터, 그 길이, 최종 단위벡터, 종속이었던 입력을 보여 줍니다. 선형대수 숙제, QR 분해, 최소제곱 문제에 쓸 수 있습니다.
계산 방법
f₁ = v₁
f_k = v_k − Σ_(j<k) (v_k · f_j ÷ ‖f_j‖²) f_j
q_k = f_k ÷ ‖f_k‖
- 어떤 f_k가 영벡터이면 v_k는 앞의 벡터들에 종속이므로 건너뛰며, 남은 벡터 수가 생성공간의 차원입니다.
- 수치 정확도를 위해 각 사영 단계를 한 번 더 반복합니다. 입력 순서가 결과에 영향을 줍니다.
원리
v_k를 f_j에 사영하면 v_k 가운데 f_j 방향 성분을 찾을 수 있습니다. 그런 성분을 모두 빼면 앞의 모든 벡터에 수직인 새로운 부분만 남습니다. 이를 벡터마다 하면 같은 공간을 생성하는 서로 수직인 방향들이 만들어지고, 길이로 나누면 단위벡터가 됩니다. 정규직교기저는 좌표가 단순한 내적이 되고 길이와 각이 보존되어 편리합니다.
예제 풀이
기본값: v₁ = (1, 1, 0), v₂ = (1, 0, 1), v₃ = (0, 1, 1).
- f₁ = (1, 1, 0), 길이 √2 = 1.41421입니다.
- v₂ · f₁ = 1이므로 f₂ = (1, 0, 1) − ½(1, 1, 0) = (1/2, −1/2, 1), 길이 1.22474입니다.
- v₃ · f₁ = 1, v₃ · f₂ = 1/2이므로 f₃ = (0, 1, 1) − ½(1, 1, 0) − (1/3)(1/2, −1/2, 1) = (−2/3, 2/3, 2/3), 길이 1.1547입니다.
- 길이는 1.41421, 1.22474, 1.1547, 건너뛴 벡터는 없음, 차원은 3입니다.
- 정규직교 벡터: (0.707107, 0.707107, 0), (0.408248, −0.408248, 0.816497), (−0.57735, 0.57735, 0.57735)입니다.
결과 해석
두 가지를 확인하십시오. 모든 q의 길이가 1이고, 서로 다른 두 q의 내적이 0이어야 합니다. 예를 들어 q₁ · q₂ = 0.288675 − 0.288675 + 0 = 0입니다. 입력 벡터의 순서를 바꾸면 다른 정규직교기저가 나오지만 똑같이 올바른 답입니다.
흔한 실수
- 새로 만든 f가 아니라 원래 v에 사영하는 경우
- 사영에서 ‖f_j‖²로 나누는 것을 잊는 경우
- 너무 일찍 정규화한 뒤 맞지 않는 공식을 쓰는 경우
- 종속인 벡터 때문에 영벡터가 나온 것을 알아채지 못하는 경우
자주 묻는 질문
그람-슈미트 과정은 무엇을 하나요?
일차독립인 벡터들을 같은 공간을 생성하는 정규직교 벡터로 바꿉니다.
벡터들이 종속이면요?
영벡터가 나와 그 입력은 건너뛰고, 생성공간의 차원이 줄어듭니다.
QR 분해와는 어떤 관계인가요?
q 벡터들이 Q를, 사영 계수들이 R을 이룹니다.
출처: D. Margalit & J. Rabinoff, Interactive Linear Algebra, §6.4 Orthogonal Sets (Gram–Schmidt process)