# 벡터: 그람-슈미트 정규직교화

#### 그람-슈미트 정규직교화의 개요

그람-슈미트 정규직교화(Gram-Schmidt Orthogonalization)는 주어진 벡터 집합을 정규직교 집합으로 변환하는 알고리즘이다. 이는 선형대수에서 중요한 개념으로, 특히 직교 기저를 구하거나 선형 독립성을 확보하는 데 사용된다. 이 과정은 주어진 벡터들을 하나씩 처리하면서, 각 벡터를 이전에 처리된 벡터들에 직교하게 변환하며, 동시에 벡터의 크기를 1로 만들어 정규화하는 과정을 거친다.

#### 그람-슈미트 알고리즘

그람-슈미트 정규직교화 알고리즘은 주어진 벡터 집합 $ {v\_1, v\_2, \dots, v\_n} $을 입력으로 받아, 정규직교 집합 $ {u\_1, u\_2, \dots, u\_n} $을 출력하는 단계적 절차로 구성된다. 이 과정에서 각 벡터는 이전 벡터들에 대해 직교화되고, 정규화 과정을 통해 벡터의 크기가 1이 된다.

**벡터의 직교화**

알고리즘의 첫 번째 단계는 벡터의 직교화이다. 주어진 벡터 $ v\_i $에 대해, 이전에 얻어진 직교 벡터 $ u\_1, u\_2, \dots, u\_{i-1} $에 대해 직교 성분을 제거한다. 이 과정은 다음과 같이 표현된다:

$$
\hat{v}*i = v\_i - \sum*{j=1}^{i-1} \text{proj}\_{u\_j}(v\_i)
$$

여기서 $ \text{proj}\_{u\_j}(v\_i) $는 벡터 $ v\_i $를 벡터 $ u\_j $에 사영(projection)한 것이다. 이 사영은 다음과 같이 계산된다:

$$
\text{proj}\_{u\_j}(v\_i) = \frac{v\_i \cdot u\_j}{u\_j \cdot u\_j} u\_j
$$

이 과정을 통해 $ \hat{v}*i $는 $ u\_1, u\_2, \dots, u*{i-1} $에 직교하게 된다.

**벡터의 정규화**

직교화된 벡터 $ \hat{v}\_i $는 아직 정규화되지 않았으므로, 벡터의 크기가 1이 되도록 정규화 과정을 거친다. 이는 다음과 같이 이루어진다:

$$
u\_i = \frac{\hat{v}\_i}{|\hat{v}\_i|}
$$

이 과정에서 $ u\_i $는 단위 벡터가 되며, 이전 벡터들과 직교하는 동시에 크기가 1인 벡터로 변환된다.

#### 그람-슈미트 정규직교화의 성질

그람-슈미트 정규직교화는 여러 가지 중요한 수학적 성질을 갖는다. 이 알고리즘을 통해 얻어진 벡터 집합은 선형 독립성을 보장하며, 각각의 벡터가 서로 직교하고, 크기가 1인 벡터들로 구성된다.

**직교성과 선형 독립성**

그람-슈미트 알고리즘을 통해 생성된 벡터들은 서로 직교하므로, 이 벡터들은 서로 독립적이다. 선형대수에서 벡터들이 서로 직교한다는 것은 그 벡터들이 선형 독립적이라는 것을 의미하며, 이는 기저(base)를 구성하는 데 필수적인 조건이다.

**정규직교 기저의 형성**

그람-슈미트 알고리즘은 주어진 벡터 공간에서 정규직교 기저를 형성하는 강력한 도구이다. 정규직교 기저는 수학적 계산, 특히 내적이나 사영 연산을 단순화하는 데 유리하다. 또한, 정규직교 기저는 다양한 변환을 단순하게 표현할 수 있는 이점을 제공한다.

**수치적 안정성**

그람-슈미트 정규직교화는 기본적으로 안정적인 알고리즘이지만, 수치 해석에서 주의가 필요하다. 특히, 벡터 간의 내적이 매우 작은 경우, 수치적 오차가 증폭될 수 있으며, 이는 결국 직교성에 영향을 미칠 수 있다. 이러한 문제를 해결하기 위해 수정된 그람-슈미트 알고리즘(Modified Gram-Schmidt Algorithm)이 제안되기도 한다.

***

관련 자료:

* Linear Algebra and Its Applications by Gilbert Strang
* Matrix Computations by Gene H. Golub and Charles F. Van Loan
* Numerical Linear Algebra by Lloyd N. Trefethen and David Bau
