Vectors (Part 1)
Textbook: pp.25 - 52
Keywords: Cross Product, Outer Product, Orthogonal Vector Decomposition
Chapter 1은 여느 선형대수학 책이 그러하듯 별 다른 내용은 없고, vector에 대한 기본적인 정의들을 소개하고 있다. 이런 기본적인 정의(혹은 성질)들을 블로그에 다시 적는 것은 정말 비트 낭비일 것 같으니, 이 포스트에서는 그래도 적어볼 가치가 있다고 판단한 것들을 정리해본다.
I. Outer Product vs. Cross Product
조금 부끄럽지만, 필자는 비교적 최근까지도 outer product와 cross product를 둘 다 외적이라는 한국말로 번역하고 두개가 서로 같은 것 인줄 알고 있었다. (굳이 변명해보자면) 아마도 고등학교 교과과정에서 cross product를 가르칠 때 내적 (inner product) 과 대비를 시켜주기 위해 외적이라는 단어를 사용했기 때문이리라.
long story short, 아래를 기억하도록 하자.
- 한국에서
외적이라고 부르는 것은 문맥에 따라outer product또는cross product가 될 수 있다.- 굳이 한국말을 사용해야 하는 상황인데, 혼란을 주고 싶지 않다면:
outer product는텐서곱으로cross product는가위곱으로 부르도록하자.
I.1. Outer Product
Outer product (텐서곱) 은 column vector 하나와 row vector 하나를 취하는 이항연산자로 (심지어 두 column, row vector의 차원이 달라도 됨) \(\mathbf{v}\mathbf{w}^T\) 와 같이 표현한다. 그리고, 이 연산자의 출력은 matrix (행렬) 이 된다.
미리 밝혀두자면, 대부분의 선형대수학 교과서는 임의의 벡터 \(\mathbf{v}\) 가 있을 때, 이는 column vector임을 가정한다. 당연히 필자도 이러한 convention을 따라서 내용을 기술할 것이고, 위에서 언급한 \(\mathbf{v}\mathbf{w}^T\) 는 곧 column vector, row vector의 순서가 된다.
막 고등학교를 마친 상태에서는 텐서곱이 꽤나 생소할 수 있는데, 의외로 여러 분야에서 꽤 많이 쓰이는 연산이니 기억해두도록 하자. 아마 이어질 챕터에서 분명 쓸 일이 있을 것이다.
아래에 적당한 텐서곱의 예제를 하나 보인다 (numpy의 broadcasting 연산과 굉장히 유사한 것을 알 수 있다).
I.2. Cross Product
Cross Product (가위곱) 은 아마도 당신이 익숙할, 고등학교 때 배운 그 외적이다 (비록 이 네이밍이 큰 혼란을 야기하기는 하지만…). 보통 \(\times\) 기호로 표현을 하고, 2개의 피연산자 벡터가 이루는 평면에 normal한 벡터를 출력한다. 물론, 이 때 두벡터의 차원은 서로 같아야 한다.
아래에 적당한 가위곱의 예제를 하나 보인다.
II. Orthogonal Vector Decomposition
Orthogonal vector decomposition (벡터직교분해, 영어로 쓰면 이따위로 길 줄 몰랐다…) 은 임의의 벡터 \(\mathbf{v}\) 와 레퍼런스 벡터 \(\mathbf{r}\) 이 주어졌을 때, \(\mathbf{v}\)를 (1) \(\mathbf{r}\) 과 평행한 벡터 하나, (2) \(\mathbf{r}\) 과 수직인 벡터 하나의 합으로 표현하는 방법을 찾는 과정이다. 글로 설명하니 뭔 개소리인가 싶을텐데, 아래의 그림을 보면 명확하게 이해할 수 있다.

위의 그림에서는 임의의 벡터 \(\mathbf{v}\) 와 주어진 레퍼런스 벡터 \(\mathbf{r}\) 에 대해서 \(\mathbf{v} = \mathbf{v}_{\perp \mathbf{r}} + \mathbf{v}_{\parallel \mathbf{r}}\) 이 만족하는 것을 알 수 있다. 결국 바꾸어 말하면, 임의의 벡터 \(\mathbf{v}\) 와 레퍼런스 벡터 \(\mathbf{r}\) 이 주어졌을 때, \(\mathbf{v} = \mathbf{v}_{\perp \mathbf{r}} + \mathbf{v}_{\parallel \mathbf{r}}\) 이 만족하도록 \(\mathbf{v}_{\perp \mathbf{r}}\) 과 \(\mathbf{v}_{\parallel \mathbf{r}}\) 을 찾는 것이 곧 직교분해이다.
직교분해를 하는 것은 몹시 간단한데, 위의 그림을 보면 \(\mathbf{v}_{\parallel \mathbf{r}} = \alpha \mathbf{r} (\alpha \in \mathbb{R})\) 임을 알 수 있다. 따라서, \(\mathbf{v} - \alpha \mathbf{r}\) 과 \(\mathbf{r}\) 은 서로 수직이며 \((\mathbf{v} - \alpha \mathbf{r}) \cdot \mathbf{r} = 0\) 이 될 것이다. 이를 식으로 만들어 술술술 풀어보면 다음과 같이 \(\alpha\)를 구할 수 있다.
따라서, 자명하게 \(\mathbf{v}_{\parallel \mathbf{r}} = \frac{\mathbf{v}^T \mathbf{r}}{\mathbf{r}^T \mathbf{r}} \mathbf{r}\) 이며, \(\mathbf{v} = \mathbf{v}_{\perp \mathbf{r}} + \mathbf{v}_{\parallel \mathbf{r}}\) 였으므로, \(\mathbf{v}_{\perp \mathbf{r}} = \mathbf{v} - \frac{\mathbf{v}^T \mathbf{r}}{\mathbf{r}^T \mathbf{r}} \mathbf{r}\) 이다. 주절주절 말이 길었는데, 정리하면 아래와 같다.
- \(\mathbf{v}_{\parallel \mathbf{r}} = \frac{\mathbf{v}^T \mathbf{r}}{\mathbf{r}^T \mathbf{r}} \mathbf{r}\) 이다.
- \(\mathbf{v}_{\perp \mathbf{r}} = \mathbf{v} - \frac{\mathbf{v}^T \mathbf{r}}{\mathbf{r}^T \mathbf{r}} \mathbf{r}\) 이다.
III. Exercises
이 챕터의 연습문제 풀이는 여기에서 확인할 수 있다.