Change of basis

Rainy Night for Sapientia·2023년 7월 2일

Change of basis

Intuition

다음과 같은 통상적인 기저(basis)벡터가 존재하는 좌표 공간을 가정해봅시다.

i^=[10]j^=[01]\hat{i} =\begin{bmatrix} 1\\ 0\\ \end{bmatrix} \:\:\: \hat{j} =\begin{bmatrix} 0\\ 1\\ \end{bmatrix}

그리고 다음과 같은 벡터 v\overrightarrow{v}는 이러한 기저하에 다음과 같이 표현됩니다.
이러한 기저벡터로 표현하는 세상을 편의상 A세상이라고 가정해봅시다.

v=5i^+4j^\overrightarrow{v} = 5\hat{i} + 4\hat{j}

그러면 이와 다른 기저벡터를 가진 세상에서는 벡터 v\overrightarrow{v}가 어떻게 보일까요?

먼저 다음과 같은 b1\overrightarrow{b_1}b2\overrightarrow{b_2} 두 벡터를 기저로 하는 세상을 상상해 봅시다. 편의상 B의 세상이라고 하겠습니다.
그 세상에서 b1\overrightarrow{b_1}b2\overrightarrow{b_2}는 기본 기저벡터이므로 다음과 같이 보입니다. B의 세상에서 본다는 의미로 서브스크립션을 달았습니다.

b1=[10]Bb2=[01]B\overrightarrow{b_1} =\begin{bmatrix} 1\\ 0\\ \end{bmatrix}_B \:\:\: \overrightarrow{b_2} =\begin{bmatrix} 0\\ 1\\ \end{bmatrix}_B

근데 A의 세상에서 해당 벡터들의 값은 다음과 같았다고 해봅시다.

b1=[11]Ab2=[21]A\overrightarrow{b_1} =\begin{bmatrix} -1\\ 1\\ \end{bmatrix}_A \:\:\: \overrightarrow{b_2} =\begin{bmatrix} 2\\ 1\\ \end{bmatrix}_A

그럼 현재 v\overrightarrow{v}는 현재 A의 세상에 존재하므로 A의 세상으로 온 벡터 b1\overrightarrow{b_1}b2\overrightarrow{b_2}의 선형결합을 통해 다음과 같이 표현될 수 있습니다.

vA=b1A+3b2A\overrightarrow{v}_A = \overrightarrow{b_1}_A + 3\overrightarrow{b_2}_A

하지만 v\overrightarrow{v}를 B의 세상으로 데려갈 수는 없을까요? 혹은 B의세상에 존재하는 벡터를 A의 세상으로 데려올 수는 없을까요?
이것이 이번에 다룰 기저변환(change of basis)입니다.

vB=?\overrightarrow{v}_B = \:?

Using Linear trasnformation

여기서 선형변환의 개념이 들어갑니다.
선형변환의 내용이 생소하신 분은 먼저 다음 포스트를 읽고 오시는 게 좋습니다.

https://velog.io/@kimgeonhee317/Linear-Transformation

선형변환시 매트릭스의 좌측 컬럼과 우측컬럼이 새로운 기저가 됩니다. 즉, 아래의 선형변환 TT는 A의 grid line을 B의 grid line으로 비틀어버리는 역할을 할겁니다.
(B의 세상의 기저 벡터는 위와 동일한 벡터를 쓰겠습니다.)

b1=[11]b2=[21]\overrightarrow{b_1} =\begin{bmatrix} -1\\ 1\\ \end{bmatrix} \:\:\: \overrightarrow{b_2} =\begin{bmatrix} 2\\ 1\\ \end{bmatrix}
T=[1211]T = \begin{bmatrix} -1 & 2 \\ 1 & 1 \\ \end{bmatrix}

여기서 잠시 생각을 해봅시다.
특정한 열벡터에 선형변환 TT를 취하면 해당 벡터는 기저벡터 i^\hat{i} 대신 b1A\overrightarrow{b_1}_A로 치환되고, 기저벡터 j^\hat{j} 대신 b2A\overrightarrow{b_2}_A로 치환된 위치를 가리키게 됩니다. 이 말은, 원래 B의 세상에 있던 열벡터를 그저 A의 세상으로 가져온 것과 동일하다는 것입니다.

다시 말하면,
A의 grid에서 B의 grid로 이동한다는 것은
B의 세상에 있던 벡터를 A의 세상으로 옮겼다고도 볼수 있다는 것입니다.

이를 수식으로 표현해보자면 다음과 같습니다.
임의의 B의 세상의 열벡터 u\overrightarrow{u}가 있을때 A의 세상에 존재하는 B의 기저벡터로 선형변환을 취하면 A의 세상으로 온 u\overrightarrow{u}의 값을 구할 수 있습니다.

TAuB=uAT_A * \overrightarrow{u}_B = \overrightarrow{u}_A

그런데 해당 수식은 B의 세상의 좌표를 먼저 알아야 한다는 문제점이 있습니다.
그럼 A의 세상에 있는 좌표를 B의 세상으로 가져가려면 어떻게 해야할까요?
위 수식의 역행렬을 취하면 됩니다. 간단하죠?

uB=(TA)1uA\overrightarrow{u}_B = (T_A)^{-1} * \overrightarrow{u}_A

이제 정리가 다 되었습니다. 특정한 열벡터를 어떠한 다른 세상의 좌표 세계로 보내고자 한다면 그 기저벡터들로 선형 매트릭스의 역행렬을 만들고 취해주면 됩니다.

자 연습삼아 다음과 같은 임의의 열벡터 m\overrightarrow{m}를 가정해봅시다.
이 벡터를 B의 세상으로 옮겨 봅시다.

m=[12]\overrightarrow{m} =\begin{bmatrix} -1\\ 2\\ \end{bmatrix}

다음 수식으로 옮길 수 있을 겁니다.

mB=(TA)1mA\overrightarrow{m}_B = (T_A)^{-1} * \overrightarrow{m}_A

T의 역행렬은 다음과 같습니다.

T=[1211]T = \begin{bmatrix} -1 & 2 \\ 1 & 1 \\ \end{bmatrix}
(T)1=13[1211](T)^{-1} = -\frac{1}{3}\begin{bmatrix} 1 & -2 \\ -1 & -1 \\ \end{bmatrix}

그리고 풀어가면 다음과 같이 mB\overrightarrow{m}_B를 구할 수 있습니다.

mB=[5/31/3]\overrightarrow{m}_B =\begin{bmatrix} 5/3\\ 1/3\\ \end{bmatrix}

Usage

이제 수식을 좀 정리해서 이러한 기저변환의 사용형태를 살펴봅시다.

다른 세상(B)에 있는 벡터 u\overrightarrow{u} 를 시계반대방향 90도 회전시키고 싶으면 어떻게할까?

시계반대방향 90도 회전에 대한 선형변환 매트릭스를 RR이라고 해봅시다. 하지만 해당 매트릭스는 우리의 세상의 존재하는 것입니다. 다른 세상에서는 다르게 적용되겠죠.
그럼 우리의 세상으로 해당 벡터를 가져와서, 회전을 취해주고 다시 보내버리면 됩니다.

uBrotated=T1RTuB\overrightarrow{u}_{B-rotated} = T^{-1}RT \overrightarrow{u}_B

References

[1] 3Blue1Brown - Essence of linear algebra

profile
Artificial Intelligence study note

0개의 댓글