맨위로가기

그람-슈미트 과정

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

그람-슈미트 과정은 내적 공간의 기저를 정규 직교 기저로 변환하는 알고리즘이다. 이 과정은 피에르시몽 라플라스와 오귀스탱 루이 코시의 연구에서 시작되었으며, 예르겐 페데르센 그람과 에르하르트 슈미트의 이름을 따서 명명되었다. 그람-슈미트 과정은 주어진 기저 벡터들을 직교화하고 정규화하는 과정을 반복하여 수행된다.

수치적 안정성을 위해 수정된 그람-슈미트 과정이 사용되기도 하며, 하우스홀더 변환, 기븐스 회전, 촐레스키 분해 등 다른 직교화 방법도 존재한다. 그람-슈미트 과정은 행렬식과 기하 대수 표현으로도 나타낼 수 있으며, 선형대수학, 양자역학 등 다양한 분야에서 활용된다.

더 읽어볼만한 페이지

  • 함수해석학 - 섭동 이론
    섭동 이론은 정확히 풀리는 문제에 작은 변화가 있을 때 급수로 표현하여 근사해를 구하는 방법으로, 초기 해에 보정항을 더하는 방식으로 고전역학, 양자역학 등 다양한 분야에서 활용되며 섭동 형태와 적용 차수에 따라 구분된다.
  • 함수해석학 - 분포 (해석학)
    해석학에서 분포는 시험 함수 공간의 연속 쌍대 공간의 원소로 정의되며, 로랑 슈바르츠에 의해 정립되어 편미분 방정식의 해를 다루는 데 유용하고 미분 불가능하거나 특이점을 갖는 함수를 포함한 다양한 함수를 다루는 데 효과적인 일반적인 함수의 개념을 확장한 것이다.
  • 선형대수학 - 벡터 공간
    벡터 공간은 체 위의 가군으로 정의되는 대수적 구조로, 벡터 덧셈과 스칼라 곱셈 연산을 가지며 특정 공리들을 만족하고, 기저, 차원, 선형 사상 등의 개념을 통해 수학과 물리학 등 다양한 분야에서 활용된다.
  • 선형대수학 - 선형 결합
    선형 결합은 벡터 공간에서 벡터들의 스칼라 곱의 합으로 표현되는 식으로, 벡터 집합의 선형 독립성 판단 및 부분 공간 생성과 관련되며, 계수 제약을 통해 다양한 종류의 결합을 정의할 수 있고, 위상 벡터 공간이나 가군으로 일반화될 수 있다.
그람-슈미트 과정

2. 역사

원래 피에르시몽 라플라스와 오귀스탱루이 코시의 논문에 등장하였다. 이후 덴마크의 예르겐 페데르센 그람(Jørgen Pedersen Gramda)과 독일계 에스토니아 태생의 에르하르트 슈미트(Erhard Schmidtde)가 명시적으로 이를 다루었으며, 이들의 이름을 땄다.

3. 과정

내적공간 V기저 \{\mathbf{v}_1, \mathbf{v}_2, \cdots, \mathbf{v}_k\}가 주어졌을 때, 그람-슈미트 과정은 이 기저를 직교화 및 정규화하여 정규 직교 기저를 생성한다. 이 과정은 다음과 같이 두 단계로 이루어진다.

\mathbb{R}^3의 기저에 속하는 세 개의 선형 독립적이고 비직교 벡터에 대해 실행되는 수정된 그람-슈미트 과정


먼저, 주어진 기저 벡터들을 순차적으로 직교화한다. 각 단계에서, 현재 벡터를 이전 단계에서 생성된 직교 벡터들에 투영하고, 원래 벡터에서 이 투영 벡터를 빼서 직교 벡터를 얻는다.

다음으로, 직교화된 벡터들을 정규화한다. 각 직교 벡터를 자신의 노름(크기)으로 나누어 단위 벡터로 만든다. 이렇게 생성된 벡터 집합은 정규 직교 기저를 이룬다.[2]

3. 1. 직교화

내적공간 V기저 \{\mathbf{v}_1, \mathbf{v}_2, \cdots, \mathbf{v}_k\}가 주어졌다고 할 때, 사영 연산자는 다음과 같이 정의된다.[2]

:\mathrm{proj}_{\mathbf{u}}\,(\mathbf{v}) = {\langle \mathbf{u}, \mathbf{v}\rangle\over\langle \mathbf{u}, \mathbf{u}\rangle}\mathbf{u}

여기서 \langle \mathbf{u}, \mathbf{v}\rangle는 벡터 '''u'''와 '''v'''의 내적이다. 그람-슈미트 과정은 각 벡터 \mathbf{v}_i\mathbf{u}_1, \mathbf{u}_2, \cdots, \mathbf{u}_{i-1}와 직교하는 벡터 \mathbf{u}_i로 만든다. 구체적인 과정은 다음과 같다.

:\mathbf{u}_1 = \mathbf{v}_1

:\mathbf{u}_2 = \mathbf{v}_2-\mathrm{proj}_{\mathbf{u}_1}\,(\mathbf{v}_2)

:\mathbf{u}_3 = \mathbf{v}_3-\mathrm{proj}_{\mathbf{u}_1}\,(\mathbf{v}_3)-\mathrm{proj}_{\mathbf{u}_2}\,(\mathbf{v}_3)

:\vdots

:\mathbf{u}_k = \mathbf{v}_k-\sum_{j=1}^{k-1}\mathrm{proj}_{\mathbf{u}_j}\,(\mathbf{v}_k)

이렇게 생성된 \{\mathbf{u}_1, \mathbf{u}_2, \cdots, \mathbf{u}_k\} 집합은 서로 직교한다.

3. 2. 정규화

직교화된 벡터 \mathbf{u}_i를 노름(크기)으로 나누어 정규화한다. 즉, 다음과 같이 정의한다.

:\mathbf{e}_i = \frac{\mathbf{u}_i}{\|\mathbf{u}_i\|}

여기서 {\|{ }\|}는 노름을 나타낸다. 이렇게 생성된 \{\mathbf{e}_1,\mathbf{e}_2,\cdots,\mathbf{e}_k\}V정규 직교 기저가 된다. 이 과정은 그람-슈미트 정규 직교화로 알려져 있다.

4. 성질

\operatorname{GS}(\mathbf{v}_1, \dots, \mathbf{v}_k)를 벡터 집합 \mathbf{v}_1, \dots, \mathbf{v}_k에 그람-슈미트 과정을 적용한 결과라고 하면, 이는 맵 \operatorname{GS} \colon (\mathbb{R}^n)^{k} \to (\mathbb{R}^n)^{k}를 생성한다.

이 맵은 다음과 같은 성질을 갖는다.


  • 연속이다.
  • \operatorname{or}(\mathbf{v}_1,\dots,\mathbf{v}_k) = \operatorname{or}(\operatorname{GS}(\mathbf{v}_1,\dots,\mathbf{v}_k))와 같은 의미에서 방향을 보존한다.
  • 직교 맵과 교환 가능하다. 즉, g \colon \mathbb{R}^n \to \mathbb{R}^n를 주어진 내적에 대해 직교 맵이라고 하면 다음이 성립한다.


:\operatorname{GS}(g(\mathbf{v}_1),\dots,g(\mathbf{v}_k)) = \left( g(\operatorname{GS}(\mathbf{v}_1,\dots,\mathbf{v}_k)_1),\dots,g(\operatorname{GS}(\mathbf{v}_1,\dots,\mathbf{v}_k)_k) \right)

또한, 그람-슈미트 과정의 매개변수화된 버전은 일반 선형군 \mathrm{GL}(\mathbb{R}^n)에서 직교군 O(\mathbb{R}^n)으로의 강한 변형 retract를 생성한다.

5. 수치적 안정성



컴퓨터에서 그람-슈미트 과정을 구현하면, 반올림 오차로 인해 벡터 \mathbf{u}_k가 정확하게 직교하지 않는 경우가 발생한다. "고전적 그람-슈미트" 과정에서 이러한 직교성 손실은 특히 심각하여 수치적으로 불안정하다.[2]

이러한 문제를 개선하기 위해 '''수정된 그람-슈미트 과정(modified Gram-Schmidt, MGS)'''을 사용할 수 있다. 이 방법은 정확한 산술 연산에서는 원래 공식과 동일한 결과를 제공하며, 유한 정밀도 산술 연산에서는 더 작은 오차를 발생시킨다. 수정된 그람-슈미트 과정은 각 단계에서 이미 직교화된 벡터에 대한 투영을 빼는 방식으로 진행된다.

벡터 \mathbf{u}_k를 다음과 같이 계산하는 대신,

\mathbf{u}_k = \mathbf{v}_k - \operatorname{proj}_{\mathbf{u}_1} (\mathbf{v}_k) - \operatorname{proj}_{\mathbf{u}_2} (\mathbf{v}_k) - \cdots - \operatorname{proj}_{\mathbf{u}_{k-1}} (\mathbf{v}_k),

다음과 같이 계산한다.

\begin{align}

\mathbf{u}_k^{(1)} &= \mathbf{v}_k - \operatorname{proj}_{\mathbf{u}_1} (\mathbf{v}_k), \\

\mathbf{u}_k^{(2)} &= \mathbf{u}_k^{(1)} - \operatorname{proj}_{\mathbf{u}_2} \left(\mathbf{u}_k^{(1)}\right), \\

& \;\; \vdots \\

\mathbf{u}_k^{(k-2)} &= \mathbf{u}_k^{(k-3)} - \operatorname{proj}_{\mathbf{u}_{k-2}} \left(\mathbf{u}_k^{(k-3)}\right), \\

\mathbf{u}_k^{(k-1)} &= \mathbf{u}_k^{(k-2)} - \operatorname{proj}_{\mathbf{u}_{k-1}} \left(\mathbf{u}_k^{(k-2)}\right), \\

\mathbf{e}_k &= \frac{\mathbf{u}_k^{(k-1)}}{\left\|\mathbf{u}_k^{(k-1)}\right\|}

\end{align}

즉, 벡터 \mathbf{v}_1, \mathbf{v}_2, \dots, \mathbf{v}_n이 주어지면, 먼저 \mathbf{v}_1 방향의 성분을 제거하여 벡터 \mathbf{v}_1, \mathbf{v}_2^{(1)}, \dots, \mathbf{v}_n^{(1)}을 만든다. (\mathbf{v}_k^{(1)} := \mathbf{v}_k - \frac{\langle \mathbf{v}_k, \mathbf{v}_1 \rangle}{\langle \mathbf{v}_1, \mathbf{v}_1 \rangle} \mathbf{v}_1). 이 단계가 지나면 \mathbf{u}_1 = \mathbf{v}_1, \mathbf{u}_2 = \mathbf{v}_2^{(1)} 두 개의 직교 벡터를 얻고, \mathbf{v}_3^{(1)}, \dots, \mathbf{v}_n^{(1)}도 이미 \mathbf{u}_1에 직교하게 된다. 다음으로, 남은 벡터들을 \mathbf{u}_2 = \mathbf{v}_2^{(1)}에 대해 직교화한다. (\mathbf{v}_k^{(2)} := \mathbf{v}_k^{(1)} - \frac{\langle \mathbf{v}_k^{(1)}, \mathbf{u}_2 \rangle}{\langle \mathbf{u}_2, \mathbf{u}_2 \rangle} \mathbf{u}_2를 계산하여 \mathbf{v}_3^{(2)}, \mathbf{v}_4^{(2)}, \dots, \mathbf{v}_n^{(2)}을 계산). 이런 식으로 진행하여 전체 직교 벡터 집합 \mathbf{u}_1, \dots, \mathbf{u}_n을 구한다. 정규 직교 벡터가 필요한 경우, 빼기 공식의 분모가 1이 되도록 진행하면서 정규화한다.

6. 알고리즘



벡터 \mathbf v를 0이 아닌 벡터 \mathbf u에 대한 벡터 투영은 다음과 같이 정의된다.[2]

\operatorname{proj}_{\mathbf u} (\mathbf{v}) = \frac{\langle \mathbf{v}, \mathbf{u}\rangle}{\langle \mathbf{u}, \mathbf{u}\rangle} \,\mathbf{u} ,

여기서 \langle \mathbf{v}, \mathbf{u}\rangle는 벡터 \mathbf u\mathbf v의 내적을 나타낸다. 즉, \operatorname{proj}_{\mathbf u} (\mathbf{v})\mathbf u에 의해 생성된 선에 \mathbf v를 직교 투영한 것이다. \mathbf u가 영벡터이면 \operatorname{proj}_{\mathbf u} (\mathbf{v})는 영벡터로 정의된다.

k개의 벡터 \mathbf{v}_1, \ldots, \mathbf{v}_k가 주어지면 그람-슈미트 과정은 벡터 \mathbf{u}_1, \ldots, \mathbf{u}_k를 다음과 같이 정의한다.

\begin{align}

\mathbf{u}_1 & = \mathbf{v}_1, & \!\mathbf{e}_1 & = \frac{\mathbf{u}_1}{\|\mathbf{u}_1\|} \\

\mathbf{u}_2 & = \mathbf{v}_2-\operatorname{proj}_{\mathbf{u}_1} (\mathbf{v}_2),

& \!\mathbf{e}_2 & = \frac{\mathbf{u}_2}{\|\mathbf{u}_2\|} \\

\mathbf{u}_3 & = \mathbf{v}_3-\operatorname{proj}_{\mathbf{u}_1} (\mathbf{v}_3) - \operatorname{proj}_{\mathbf{u}_2} (\mathbf{v}_3),

& \!\mathbf{e}_3 & = \frac{\mathbf{u}_3 }{\|\mathbf{u}_3\|} \\

\mathbf{u}_4 & = \mathbf{v}_4-\operatorname{proj}_{\mathbf{u}_1} (\mathbf{v}_4)-\operatorname{proj}_{\mathbf{u}_2} (\mathbf{v}_4)-\operatorname{proj}_{\mathbf{u}_3} (\mathbf{v}_4),

& \!\mathbf{e}_4 & = {\mathbf{u}_4 \over \|\mathbf{u}_4\|} \\

& {}\ \ \vdots & & {}\ \ \vdots \\

\mathbf{u}_k & = \mathbf{v}_k - \sum_{j=1}^{k-1}\operatorname{proj}_{\mathbf{u}_j} (\mathbf{v}_k),

& \!\mathbf{e}_k & = \frac{\mathbf{u}_k}{\|\mathbf{u}_k\|}.

\end{align}

수열 \mathbf{u}_1, \ldots, \mathbf{u}_k는 필요한 직교 벡터 시스템이고, 정규화된 벡터 \mathbf{e}_1, \ldots, \mathbf{e}_k는 정규 직교 집합을 형성한다. 수열 \mathbf{u}_1, \ldots, \mathbf{u}_k의 계산은 ''그람-슈미트 직교화''로 알려져 있으며, 수열 \mathbf{e}_1, \ldots, \mathbf{e}_k의 계산은 ''그람-슈미트 정규 직교화''로 알려져 있다.

기하학적으로, 이 방법은 다음과 같이 진행된다. \mathbf{u}_i를 계산하려면 \mathbf{v}_i\mathbf{u}_1, \ldots, \mathbf{u}_{i-1}에 의해 생성된 부분 공간 U에 직교적으로 투영한다. 이 부분 공간은 \mathbf{v}_1, \ldots, \mathbf{v}_{i-1}에 의해 생성된 부분 공간과 동일하다. 그런 다음 벡터 \mathbf{u}_i\mathbf{v}_i와 이 투영의 차이로 정의되며, 이는 부분 공간 U의 모든 벡터에 직교하도록 보장된다.

그람-슈미트 과정은 또한 선형 독립적인 가산 무한 수열에도 적용된다. 결과는 자연수 n에 대해 \mathbf{v}_1, \ldots, \mathbf{v}_{n}의 대수적 span이 \mathbf{u}_1, \ldots, \mathbf{u}_{n}의 span과 동일한 직교(또는 정규 직교) 수열이다.

그람-슈미트 과정이 선형 종속 수열에 적용되면, \mathbf{v}_i\mathbf{v}_1, \ldots, \mathbf{v}_{i-1}의 선형 결합이라고 가정하고 i번째 단계에서 0 벡터를 출력한다. 정규 직교 기저를 생성하려면 알고리즘에서 출력에 0 벡터가 있는지 테스트하고 제거해야 한다.

다음은 고전적인 그람-슈미트 정규 직교화를 구현하는 MATLAB 알고리즘이다. 벡터 (행렬 `V`의 열)는 동일한 부분 공간을 span하는 정규 직교 벡터 ( `U`의 열)로 대체된다.



function U = gramschmidt(V)

[n, k] = size(V);

U = zeros(n,k);

U(:,1) = V(:,1) / norm(V(:,1));

for i = 2:k

U(:,i) = V(:,i);

for j = 1:i-1

U(:,i) = U(:,i) - (U(:,j)'*U(:,i)) * U(:,j);

end

U(:,i) = U(:,i) / norm(U(:,i));

end

end



이 알고리즘의 비용은 점근적으로 O(''nk''2) 부동 소수점 연산이다.

7. 다른 방법들

하우스홀더 변환이나 기븐스 회전을 사용하는 직교화 알고리즘은 안정화된 그람-슈미트 과정보다 더 안정적이다. 하지만 그람-슈미트 과정은 j번째 반복 후에 j번째 직교화된 벡터를 생성하는 반면, 하우스홀더 반사를 사용한 직교화는 마지막에 모든 벡터를 생성한다. 따라서 그람-슈미트 과정만이 아르놀디 반복과 같은 반복법에 적용될 수 있다.[2]

촐레스키 분해를 사용하는 방법도 있다. 열을 직교화해야 하는 전체 열 랭크 행렬을 V라고 하면, 행렬 V^* V 는 에르미트 행렬이며 양의 정부호 행렬이므로, 촐레스키 분해를 통해 V^* V = L L^* 로 표현할 수 있다. 이때 대각선 성분이 양수인 하부 삼각 행렬 L 은 가역 행렬이다. 그러면 행렬 U = V\left(L^{-1}\right)^*의 열은 정규 직교하며 원래 행렬 V의 열과 같은 부분 공간을 생성한다. 그러나 V^* V 곱을 명시적으로 사용하면 알고리즘이 불안정해질 수 있는데, 특히 곱의 조건수가 큰 경우에 그렇다. 그럼에도 불구하고 이 알고리즘은 효율성과 단순성 때문에 실제로 사용되며 일부 소프트웨어 패키지에 구현되어 있다.[2]

양자역학에서는 원래의 그람-슈미트보다 특정 응용 분야에 더 적합한 여러 직교화 방식이 있다. 하지만, 이러한 방법들은 여전히 가장 큰 전자 구조 계산에도 효과적인 알고리즘으로 남아있다.[5]

8. 행렬식 표현

그람-슈미트 과정의 결과는 행렬식을 사용하여 다음과 같은 비재귀적 공식으로 표현할 수 있다.[3]

: \mathbf{e}_j = \frac{1}{\sqrt{D_{j-1} D_j}} \begin{vmatrix}

\langle \mathbf{v}_1, \mathbf{v}_1 \rangle & \langle \mathbf{v}_2, \mathbf{v}_1 \rangle & \cdots & \langle \mathbf{v}_j, \mathbf{v}_1 \rangle \\

\langle \mathbf{v}_1, \mathbf{v}_2 \rangle & \langle \mathbf{v}_2, \mathbf{v}_2 \rangle & \cdots & \langle \mathbf{v}_j, \mathbf{v}_2 \rangle \\

\vdots & \vdots & \ddots & \vdots \\

\langle \mathbf{v}_1, \mathbf{v}_{j-1} \rangle & \langle \mathbf{v}_2, \mathbf{v}_{j-1} \rangle & \cdots & \langle \mathbf{v}_j, \mathbf{v}_{j-1} \rangle \\

\mathbf{v}_1 & \mathbf{v}_2 & \cdots & \mathbf{v}_j

\end{vmatrix}

: \mathbf{u}_j = \frac{1}{D_{j-1} } \begin{vmatrix}

\langle \mathbf{v}_1, \mathbf{v}_1 \rangle & \langle \mathbf{v}_2, \mathbf{v}_1 \rangle & \cdots & \langle \mathbf{v}_j, \mathbf{v}_1 \rangle \\

\langle \mathbf{v}_1, \mathbf{v}_2 \rangle & \langle \mathbf{v}_2, \mathbf{v}_2 \rangle & \cdots & \langle \mathbf{v}_j, \mathbf{v}_2 \rangle \\

\vdots & \vdots & \ddots & \vdots \\

\langle \mathbf{v}_1, \mathbf{v}_{j-1} \rangle & \langle \mathbf{v}_2, \mathbf{v}_{j-1} \rangle & \cdots & \langle \mathbf{v}_j, \mathbf{v}_{j-1} \rangle \\

\mathbf{v}_1 & \mathbf{v}_2 & \cdots & \mathbf{v}_j

\end{vmatrix}

여기서 D_0 = 1이고, j \ge 1에 대해 D_j는 그람 행렬식이다.

: D_j = \begin{vmatrix}

\langle \mathbf{v}_1, \mathbf{v}_1 \rangle & \langle \mathbf{v}_2, \mathbf{v}_1 \rangle & \cdots & \langle \mathbf{v}_j, \mathbf{v}_1 \rangle \\

\langle \mathbf{v}_1, \mathbf{v}_2 \rangle & \langle \mathbf{v}_2, \mathbf{v}_2 \rangle & \cdots & \langle \mathbf{v}_j, \mathbf{v}_2 \rangle \\

\vdots & \vdots & \ddots & \vdots \\

\langle \mathbf{v}_1, \mathbf{v}_j \rangle & \langle \mathbf{v}_2, \mathbf{v}_j \rangle & \cdots & \langle \mathbf{v}_j, \mathbf{v}_j \rangle

\end{vmatrix}.

\mathbf{u}_k에 대한 표현은 스칼라와 벡터를 모두 포함하는 형식적인 행렬식이며, 이 표현은 벡터 행을 따라 여인자 전개를 통해 계산된다.

이 공식은 계산 속도가 느리기 때문에 주로 이론적인 용도로 사용된다.

9. 기하 대수 표현

벡터 \mathbf{v}_k\mathbf{u}_j에 대해, 기하 대수(Geometric Algebra) 표기법을 사용하면 그람-슈미트 과정의 정규화되지 않은 결과를 다음과 같이 표현할 수 있다.[4]

:\mathbf{u}_k = \mathbf{v}_k - \sum_{j=1}^{k-1} (\mathbf{v}_k \cdot \mathbf{u}_j)\mathbf{u}_j^{-1}\ ,

이는 벡터 투영 연산자 \operatorname{proj}를 사용하는 표현과 동일하다.

또한, 다음과 같이 동등하게 표현할 수 있다.[4]

:\mathbf{u}_k = \mathbf{v}_{k}\wedge\mathbf{v}_{k-1}\wedge\cdot\cdot\cdot\wedge\mathbf{v}_{1}(\mathbf{v}_{k-1}\wedge\cdot\cdot\cdot\wedge\mathbf{v}_{1})^{-1},

이 표현은 행렬식을 사용하는 표현과 관련이 있다.

10. 확장

그람-슈미트 과정은 선형 독립적인 가산 무한 수열에도 적용된다. 그 결과는 자연수에 대해 \mathbf{v}_1, \ldots, \mathbf{v}_{n}의 대수적 span이 \mathbf{u}_1, \ldots, \mathbf{u}_{n}의 span과 동일한 직교 (또는 정규 직교) 수열이다.

만약 그람-슈미트 과정이 선형 종속 수열에 적용되면, \mathbf{v}_i\mathbf{v}_1, \ldots, \mathbf{v}_{i-1}의 선형 결합이라고 가정하고 i번째 단계에서 0 벡터를 출력한다. 정규 직교 기저를 생성하려면 알고리즘에서 출력에 0 벡터가 있는지 테스트하고 제거해야 한다. 0 벡터의 배수는 길이가 1일 수 없기 때문이다. 그러면 알고리즘에서 출력되는 벡터의 수는 원래 입력에 의해 생성된 공간의 차원이 된다.

초한 귀납법을 사용하는 그람-슈미트 과정의 변형은 벡터의 (가능한 비가산) 무한 수열 (v_\alpha)_{\alpha<\lambda}에 적용되어 \kappa\leq\lambda인 정규 직교 벡터 집합 (u_\alpha)_{\alpha<\kappa}을 생성하여, 모든 \alpha\leq\lambda에 대해 \{ v_\beta : \beta < \alpha\}의 span의 완비와 \{ u_\beta : \beta<\min(\alpha,\kappa) \}의 span의 완비가 동일하게 된다. 특히, 힐베르트 공간의 (또는 더 일반적으로, 모든 조밀한 부분 공간의) (대수적) 기저에 적용하면 (함수 해석적) 정규 직교 기저가 생성된다. 일반적인 경우, 시작 집합이 선형 독립적이라도 종종 \kappa < \lambda 의 엄격한 부등식이 성립하며, (u_\alpha)_{\alpha<\kappa}의 span은 (v_\alpha)_{\alpha<\lambda}의 span의 부분 공간일 필요는 없다 (오히려, 완비의 부분 공간이다).

11. 예제

\mathbb{R}^2에서 다음 벡터 집합을 (일반적인 내적)을 사용하여 고려한다.

:S = \left\{\mathbf{v}_1=\begin{bmatrix} 3 \\ 1\end{bmatrix}, \mathbf{v}_2=\begin{bmatrix}2 \\2\end{bmatrix}\right\}.

이제 그람-슈미트 과정을 적용하여 직교 벡터 집합을 구하면 다음과 같다.

:\mathbf{u}_1=\mathbf{v}_1=\begin{bmatrix}3\\1\end{bmatrix}

:\begin{aligned}

\mathbf{u}_2 &= \mathbf{v}_2 - \operatorname{proj}_{\mathbf{u}_1} (\mathbf{v}_2) \\

&= \begin{bmatrix}2\\2\end{bmatrix} - \operatorname{proj}_{\left[\begin{smallmatrix}3 \\ 1\end{smallmatrix}\right]} {\begin{bmatrix}2\\2\end{bmatrix}} \\

&= \begin{bmatrix}2\\2\end{bmatrix} - \frac{8}{10} \begin{bmatrix} 3 \\1 \end{bmatrix} \\

&= \begin{bmatrix} -2/5 \\6/5 \end{bmatrix}.

\end{aligned}

벡터 \mathbf{u}_1\mathbf{u}_2가 실제로 직교하는지 확인하면 다음과 같다.

:\langle\mathbf{u}_1,\mathbf{u}_2\rangle = \left\langle \begin{bmatrix}3\\1\end{bmatrix}, \begin{bmatrix} -2/5 \\ 6/5 \end{bmatrix} \right\rangle = -\frac{6}{5} + \frac{6}{5} = 0,

두 벡터의 점곱이 0이므로 직교한다.

이제, 영벡터가 아닌 벡터의 크기로 나누어 벡터를 정규화할 수 있다.

:\mathbf{e}_1 = \frac{1}{\sqrt {10}}\begin{bmatrix}3\\1\end{bmatrix}

:\begin{aligned}

\mathbf{e}_2 &= \frac{1}{\sqrt{40 \over 25}} \begin{bmatrix}-2/5\\6/5\end{bmatrix} \\

&= \frac{1}{\sqrt{10}} \begin{bmatrix}-1\\3\end{bmatrix}.

\end{aligned}

참조

[1] 서적 Linear Algebra: Theory and Applications https://books.google[...] Jones and Bartlett
[2] 문서
[3] 논문 Gram-Schmidt Orthogonalization by Gauss Elimination 1991-01-01
[4] 서적 Geometric Algebra for Physicists Cambridge University Press
[5] 서적 Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis 2011
[6] 간행물 Geometric Algorithms and Combinatorial Optimization



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com