맨위로가기

그람-슈미트 과정

"오늘의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