선형 대수

Orthogonal 벡터 만들기 #2

호재 P.B 2022. 3. 7. 00:55

 

 

 

저번 포스팅에서 2차원 공간에서 두 벡터를 orthogonal하게 만드는 방법에 대해 알아보았습니다. (orthogonal : 두 벡터가 수직(직교))

요약하면 아래와 같습니다

  • 기존에 벡터 $v_1$이 있을 때 linearly independent한 벡터 $v_2$를 추가하여 $v_1$과 orthogonal한 벡터를 어떻게 만들까?
  • $v_2$을 $v_1$에 사영한 벡터 $v_2^\prime$에서 $v_2$로 향하는 벡터가 바로 $v_1$과 orthogonal한 벡터이다! 
    • $v_2- v_2^\prime = v_2 - \frac{v_1 \cdot v_2}{v_1 \cdot v_1} v_1$

이번에는 3차원 공간, 더 나아가서 4차원 이상인 n차원 공간에서 각 벡터를 orthogonal하게 만드는 방법에 대해 알아보겠습니다

3차원 공간에서 orthogonal 벡터 만들기

어떻게 할 수 있을까?

자, 그림처럼 3차원 공간에 두 벡터 $o_1$, $o_2$가 있습니다 (두 벡터는 서로 orthogonal 합니다)

여기에 새로운 벡터 $v_1$가 주어질 때, 기존의 두 벡터와 orthogonal한 벡터를 만들고 싶습니다. 어떻게 하면 될까요?

 

 

우선, $v_1$에서 기존의 두 벡터 $o_1$, $o_2$의 span에 수선의 발 $v_1^\prime$을 내려봅시다 ($o_1$, $o_2$의 span은 두 벡터의 선형 결합으로 만들 수 있는 하나의 평면입니다)
$v_1^\prime$을 알 수 있다면 $v_1^\prime$에서 $v_1$로 향하는 벡터가 결국 기존의 두 벡터인 $o_1$, $o_2$와 orthogonal한 벡터가 됩니다.
우리의 1차 목표은 수선의 발 벡터 $v_1^\prime$를 구하는 것이 됩니다

 

그리고 내린 수선의 발 $v_1^\prime$에서 $o_1$, $o_2$에도 각각 수선의 발을 내려봅시다

 

 

자세히 보니 $v_1^\prime$에서 $o_1$, $o_2$에 각각 내린 수선의 발 $o_1^\prime$, $o_2^\prime$는 벡터 $v_1$에서 $o_1$, $o_2$에 각각 내린 수선의 발과 같습니다 

즉, 우리가 찾고 싶어하는 수선의 발 벡터 $v_1^\prime$은 $v_1$에서 $o_1$, $o_2$에 각각 내린 수선의 발인 $o_1^\prime$, $o_2^\prime$를 합한 벡터 $o_1^\prime + o_2^\prime$가 됩니다.

이제, $o_1^\prime$, $o_2^\prime$만 구하면 수선의 발 $v_1^\prime$을 알 수 있습니다!

 

본격 계산!

지난 포스팅에서 두 벡터가 있을 때 하나의 벡터를 다른 하나의 벡터에 수선의 발을 내리는 공식을 확인하였습니다

$v_2$에서 $v_1$에 내린 수선의 발 벡터는 아래와 같다
$$\frac{v_1 \cdot v_2}{v_1 \cdot v_1} v_1$$

이 공식을 위의 예시에 적용하여 $o_1^\prime$, $o_2^\prime$을 구하면 다음과 같습니다

$$ o_1^\prime = \frac{v_1 \cdot o_1}{o_1 \cdot o_1} o_1$$

$$ o_2^\prime = \frac{v_1 \cdot o_2}{o_2 \cdot o_2} o_2$$


이제 마지막으로! 우리가 찾고자 하는 orthogonal 벡터는 수선의 발 벡터 $o_1^\prime + o_2^\prime$에서 $v_1$으로 향하는 벡터이므로 아래와 같이 계산됩니다

$$ v_1 - (o_1^\prime + o_1^\prime) = v_1 - (\frac{v_1 \cdot o_1}{o_1 \cdot o_1} o_1 + \frac{v_1 \cdot o_2}{o_2 \cdot o_2}o _2)$$

 

4차원 이상 공간에서는?

마찬가지로 위의 규칙을 4차원 이상의 공간에 적용하면 다음과 같습니다.

 

기존에 존재하는 벡터 $o_1$, $o_2$, ... ,$o_{j-1}$에 j번째 벡터 $v_j$를 추가할 때 orthogonal한 벡터를 만들고 싶은 경우

$v_j$에서 $o_1$, $o_2$, ..., $o_{j-1}$에 수선의 발을 내린 벡터 $o_1^\prime$, $o_2^\prime$...$o_{j-1}^\prime$ 를 구한다. (여기서 기존에 존재하는 벡터 $o_1$, $o_2$, ... ,$o_{j-1}$ 는 서로 orthogonal 한 상태이어야 합니다)

수선의 발 벡터를 모두 더한 것이 $v_j$에서 $o_1$, $o_2$ ... $o_{j-1}$의 span에 내린 수선의 발과 같으므로 최종적으로 orthogonal 벡터는 아래와 같이 계산한다

$$v_j - (o_1^\prime + o_2^\prime + ... + o_{j-1}^\prime)$$

 

마치며

새로운 벡터가 추가될 때마다 orthogonal하게 만드는 방법에 대해 알아보았습니다

 

 

글이 도움이 되셨다면 아래 클릭 한번 부탁드립니다 :)

 

 

반응형