직교행렬 구하는법 기초부터 QR분해까지 쉽게 설명합니다

직교행렬 구하는법을 찾아보는 분들은 대부분 선형대수학 시험을 앞두었거나, 최소제곱법과 QR 분해 같은 응용을 공부하는 중일 것입니다. 직교행렬은 이름 때문에 어렵게 느껴지지만, 정확한 정의와 과정을 차근차근 따라가면 의외로 간단하게 구할 수 있습니다. 이 글에서는 직교행렬이 무엇인지, 어떤 성질을 가지는지, 그리고 실제로 어떻게 구하는지 예제와 함께 정리해 드립니다.

구분내용
정의열벡터들이 서로 직교하고 길이가 모두 1인 정사각행렬
핵심 성질QTQ = I, 따라서 QT = Q-1
구하는 절차그람 슈미트 직교화 후 정규화
대표 응용최소제곱법, QR 분해, 회전 변환
직교행렬 구하는법

직교행렬의 정의와 핵심 성질부터 확인합니다

직교행렬은 열벡터들이 서로 직교하면서 동시에 길이가 1인 정사각행렬입니다. 여기서 길이가 1이라는 조건이 매우 중요합니다. 서로 직교하기만 하면 직교 기저가 되지만, 길이까지 1로 맞춘 상태를 정규 직교 기저라고 부릅니다. 이렇게 만들어진 열벡터들을 q1, q2, …, qn이라고 할 때, 서로 다른 두 열벡터의 내적은 0이 되고 같은 열벡터의 내적은 1이 됩니다. 이 성질을 식으로 표현하면 행렬 곱의 형태로 아주 깔끔하게 정리됩니다.

직교행렬 Q의 가장 대표적인 성질은 QTQ = I라는 점입니다. 전치행렬과 원래 행렬을 곱했을 때 항등행렬이 나오기 때문에, 자연스럽게 Q의 역행렬은 Q의 전치행렬과 같아집니다. 일반적인 행렬의 역행렬을 구하는 과정은 매우 번거롭지만, 직교행렬은 전치만 취하면 역행렬이 되는 특별한 혜택을 누립니다. 이 때문에 직교행렬 구하는법을 익혀 두면 이후 계산에서 큰 이점을 얻을 수 있습니다.

정규 직교 기저가 핵심입니다

직교행렬을 이해하려면 먼저 정규 직교 기저의 개념을 잡아야 합니다. 벡터 공간에서 기저란 공간의 모든 벡터를 그 조합으로 표현할 수 있는 최소한의 벡터 집합을 뜻합니다. 이 기저를 이루는 벡터들이 서로 수직이고 길이가 모두 1이라면 정규 직교 기저가 됩니다. 예를 들어 2차원 평면에서 e1 = (1,0), e2 = (0,1)은 가장 대표적인 정규 직교 기저입니다. 이 두 벡터는 내적이 0이고 각각의 길이가 1이기 때문입니다.

여기서 중요한 점은 정규 직교 기저를 행렬로 묶으면 그 행렬이 곧 직교행렬이 된다는 사실입니다. 즉 직교행렬 구하는법의 본질은 주어진 벡터들을 정규 직교 기저로 바꾸는 작업입니다. 이 과정을 체계적으로 수행하는 대표적인 방법이 바로 그람 슈미트 과정입니다.

직교행렬의 네 가지 성질을 정리합니다

  • QTQ = QQT = I 가 성립합니다
  • Q의 역행렬은 QT와 같습니다
  • Q의 행렬식 값은 1 또는 -1입니다
  • Q를 곱해도 벡터의 길이와 각도가 보존됩니다

이 성질들 덕분에 직교행렬은 수치적으로 매우 안정적인 계산을 가능하게 합니다. 실제로 컴퓨터로 많은 연산을 수행할 때 역행렬을 직접 구하면 오차가 커지고 연산량도 늘어나지만, 직교행렬을 활용하면 전치행렬만으로 계산을 마칠 수 있어 속도와 정확도가 크게 개선됩니다.

직교행렬 구하는법 그람 슈미트 과정으로 시작합니다

직교행렬 구하는법에서 가장 널리 쓰이는 방법은 그람 슈미트 직교화 과정입니다. 이 과정은 서로 독립인 벡터들을 입력받아 서로 직교하고 길이가 1인 벡터들로 바꾸어 줍니다. 기본 아이디어는 간단합니다. 새로운 벡터를 만들 때, 이미 확보한 직교 벡터 방향의 성분을 하나씩 빼서 순수한 새로운 방향만 남기는 것입니다.

처음에 주어진 선형 독립인 벡터를 a1, a2, a3라고 하겠습니다. 먼저 a1을 그대로 v1으로 둡니다. 그리고 a2에서 v1 방향 성분을 빼면 v1과 직교하는 v2를 얻습니다. 같은 방식으로 a3에서 v1 방향 성분과 v2 방향 성분을 모두 빼면 v1, v2와 모두 직교하는 v3가 만들어집니다. 이렇게 얻은 v1, v2, v3는 서로 직교하는 벡터 집합이 됩니다.

하지만 직교행렬은 길이가 1인 벡터로 구성되어야 하므로, 마지막에 각 벡터를 자신의 길이로 나누어 정규화해야 합니다. 이 정규화 단계를 마치면 정규 직교 기저가 완성되고, 이 벡터들을 열로 묶은 행렬이 바로 직교행렬이 됩니다. 이 과정을 수식으로 정리하면 아래와 같습니다.

단계별 절차를 정리합니다

  1. 첫 번째 벡터를 그대로 선택하고 길이를 1로 만듭니다
  2. 두 번째 벡터에서 첫 번째 직교 벡터 방향의 성분을 뺀 뒤 정규화합니다
  3. 세 번째 벡터에서 앞선 두 직교 벡터 방향의 성분을 모두 뺀 뒤 정규화합니다
  4. 같은 방식으로 n번째 벡터까지 반복합니다

이 절차만 정확히 따라 하면 어떤 선형 독립 벡터 집합이 주어져도 직교행렬을 만들어 낼 수 있습니다. 다만 모든 벡터가 서로 독립이라는 전제가 반드시 필요합니다. 만약 하나의 벡터가 다른 벡터들의 조합으로 표현된다면 직교화 과정에서 그 벡터의 성분이 모두 사라져 길이가 0이 되기 때문입니다.

예제로 보는 2×2 직교행렬 구하는법

실제 숫자로 직교행렬 구하는법을 따라가 보겠습니다. 두 벡터 a1 = (1, 1)과 a2 = (1, 0)이 주어졌다고 가정합니다. 첫 단계로 v1 = a1 = (1, 1)을 선택하고 길이로 나누면 q1 = (1/√2, 1/√2)가 됩니다. 두 번째 벡터 a2에서 v1 방향 성분을 빼면 v2 = (1, 0) – (1/2)(1, 1) = (1/2, -1/2)가 나옵니다.

이제 v2의 길이를 계산하면 √(1/4 + 1/4) = 1/√2 이므로, 정규화하면 q2 = (1/√2, -1/√2)를 얻습니다. q1과 q2의 내적은 1/2 – 1/2 = 0이므로 두 벡터는 정말로 직교합니다. 따라서 두 벡터를 열로 묶은 행렬 Q = [[1/√2, 1/√2], [1/√2, -1/√2]]는 훌륭한 직교행렬입니다. 직접 전치행렬을 곱해 보면 항등행렬이 나오는 것을 확인할 수 있습니다.

이 예제에서 느낄 수 있듯이 직교행렬을 구하는 과정은 단순한 산수처럼 느껴질 정도로 규칙적입니다. 처음에는 수식이 복잡해 보여도 직접 한 번 풀어보면 벡터에서 성분을 빼고 길이를 1로 만들어 주는 흐름이 손에 익습니다. 저도 처음 공부할 때 이 예제를 종이에 여러 번 쓰면서 감을 잡았던 기억이 있습니다.

QR 분해로 확장하는 직교행렬 구하는법

그람 슈미트 과정을 행렬 관점에서 보면 주어진 행렬 A를 직교행렬 Q와 상삼각행렬 R의 곱으로 분해하는 QR 분해가 됩니다. A의 열벡터들로 정규 직교 기저를 만들어 Q를 얻고, 각 열벡터가 새 기저에 얼마나 투영되는지를 모아 R을 만듭니다. 이때 R = QTA로 계산할 수 있습니다.

QR 분해는 최소제곱법에서 특히 유용합니다. 원래 연립방정식 Ax = b를 풀 때 ATA의 역행렬을 구하는 과정은 연산량이 많고 수치적으로 불안정할 수 있습니다. 하지만 A = QR로 바꾸면 ATA = RTR이 되어 역행렬 계산을 피하고, Rx = QTb를 상삼각행렬의 대입법으로 빠르게 풀 수 있습니다. 이렇게 직교행렬 구하는법을 익혀 두면 단순히 행렬 하나를 만드는 것을 넘어 실제 문제 해결까지 이어집니다.

직교행렬이 주는 기하학적 의미를 살펴봅니다

직교행렬은 계산상의 이점뿐 아니라 기하학적으로도 아름다운 의미를 가집니다. 직교행렬을 벡터에 곱하면 벡터의 길이는 그대로 유지되고 방향만 회전하거나 반전됩니다. 표준 기저 벡터가 직교행렬의 열벡터 방향으로 이동한다고 생각하면 이해가 빠릅니다. 반대로 직교행렬의 전치행렬을 곱하면 회전된 벡터가 다시 원래의 표준 기저 방향으로 돌아옵니다.

이러한 성질 때문에 직교행렬은 컴퓨터 그래픽스에서 물체를 회전할 때, 로봇 공학에서 좌표계를 변환할 때, 그리고 통계학에서 주성분 분석을 할 때 두루 사용됩니다. 길이와 각도가 보존된다는 보장이 있으므로 변환 과정에서 정보가 왜곡되지 않기 때문입니다. 제가 과거에 데이터 분석 프로젝트를 할 때도 정규 직교 기저로 축을 변환한 뒤 계산을 수행한 경험이 있는데, 이 성질이 얼마나 든든한지 직접 체감할 수 있었습니다.

재미있는 점은 이 직교 개념이 행렬에만 국한되지 않는다는 사실입니다. 함수 공간에서도 두 함수의 내적이 0이면 서로 직교한다고 말합니다. 예를 들어 사인 함수와 코사인 함수는 특정 구간에서 서로 직교하며, 이 성질을 바탕으로 임의의 주기 함수를 사인과 코사인의 조합으로 표현하는 푸리에 급수가 탄생했습니다. 직교라는 하나의 개념이 행렬과 함수라는 서로 다른 영역을 아우르는 모습이 선형대수의 매력을 느끼게 해 줍니다.

최소제곱법에서 만나는 직교행렬

현실의 데이터는 연립방정식 Ax = b의 해가 정확히 존재하지 않는 경우가 많습니다. 이때 오차를 최소화하는 근사해를 구하는 방법이 최소제곱법입니다. 참값 b를 행렬 A의 열공간에 수직으로 투영한 뒤 그 투영된 벡터를 이용해 해를 구하는 방식입니다. 이 과정에서 투영 행렬과 정규 직교 기저가 등장하고, 직교행렬이 계산을 단순화하는 데 큰 역할을 합니다.

특히 대칭 행렬을 다루는 공액 구배법이라는 반복 기법에서도 직교 개념이 확장된 A-직교 성질이 핵심으로 사용됩니다. 이처럼 직교행렬 구하는법은 단순히 행렬 하나를 만드는 기술이 아니라, 선형대수 전반을 관통하는 중요한 도구입니다.

마무리하며

지금까지 직교행렬의 정의와 네 가지 성질을 살펴보고, 그람 슈미트 과정을 통해 실제로 직교행렬을 구하는 방법을 예제로 확인했습니다. 이어서 QR 분해로 확장하고, 직교행렬이 가지는 기하학적 의미와 최소제곱법에서의 활용까지 정리해 보았습니다. 직교행렬은 열벡터가 서로 직교하고 길이가 1인 정사각행렬이며, 그람 슈미트 과정을 통해 정규 직교 기저를 만들어 구할 수 있습니다.

직교행렬을 직접 손으로 계산해 보는 경험은 선형대수의 전체 흐름을 보는 눈을 키워 줍니다. 앞으로는 QR 분해를 넘어 특잇값 분해나 주성분 분석까지 공부를 확장해 보시길 바랍니다. 오늘 설명한 직교행렬 구하는법을 기반으로 삼으면, 더 복잡한 행렬 분해도 자연스럽게 이해할 수 있을 것입니다.

자주 묻는 질문

Q. 직교행렬은 모든 행렬에서 구할 수 있나요?

A. 모든 행렬에서 구할 수는 없습니다. 그람 슈미트 과정을 적용하려면 열벡터들이 서로 선형 독립이어야 하고, 직교행렬이 되려면 행렬이 정사각행렬이어야 합니다. 열벡터 사이에 종속 관계가 있으면 정규화 과정에서 길이가 0인 벡터가 생겨버립니다.

Q. 직교행렬과 정규 직교행렬은 다른 것인가요?

A. 사실상 같은 의미로 사용됩니다. 영어로는 orthogonal matrix라고 하지만, 정확히는 열벡터가 정규 직교인 정사각행렬을 가리킵니다. 서로 직교하면서 길이가 모두 1인 상태를 정규 직교라고 부른다는 점만 기억하면 헷갈리지 않습니다.

Q. 직교행렬 구하는법에서 가장 중요한 단계는 무엇인가요?

A. 정규화 단계가 가장 중요합니다. 그람 슈미트 과정을 통해 직교 벡터를 만들었다 하더라도 길이가 1이 아니면 직교행렬이 될 수 없습니다. 각 벡터의 방향은 유지한 채 길이만 1로 만들어 주는 과정이 직교행렬의 완성도를 결정합니다.

Leave a Comment