Game Development, 게임개발/게임 수학,물리

선형변환, Linear Transformation [게임수학]

게임이 더 좋아 2021. 3. 17. 06:14
반응형
728x170

앞서 선형에 대한 정의도 했고 선형 변환도 살짝은 설명했다.

선형 변환은 하나의 벡터 공간을 다른 벡터 공간으로 변환하는 함수라고 했다.

++ 기저 벡터가 변하는 그런 것들

 

선형 변환인 이유는

변환을 하더라도 벡터공간의 조건에서 선형성을 잃지 않기 때문이다.

 

이로 인해 얼마나 우리가 이용할 것이 많은지 신나지 않나??

우선 나는 신나지는 않고 흥미롭긴 하다.

 

 


 

이전에 벡터를 행렬로 표현이 가능하다고 했다.

때문에 선형 변환도 행렬로 표현이 가능하다고 말했다.

 

어떻게 가능할까??

 

예를 들어볼까?

선형 변환 T가 있다고하자 이 변환은 벡터 공간 V를 다른 벡터 공간 W로 변환해주는 변환이다.

벡터 공간 V를 다른 벡터 공간인 W로 바꾸고 싶다. (차원은 각각 n,m차원이다)

 

벡터 공간 V에서 임의의 벡터 v는 아래와 같이 표현될 수 있다.

변환을 한다면??

 

 

변환을 하여도 여전히 선형성을 유지한다. 

++여기서 선형성이란 앞서 설명한 2가지 특징을 말한다.

다시 말하자면 선형 변환을 수행한다면, 기저 벡터들을 선형 변환하면 나머지는 정리만 하면 된다는 뜻이다.

 

기저 벡터들의 선형변환은 다시 새로운 벡터 공간을 기준으로 다시 표현이 가능하다.

++여기선 새로운 벡터 공간을 W라고 하겠다.

 

아까 변환했던 임의의 벡터 vi가 이렇게 표현될 수 있다는 것이다.

 

 

 

여기서 w1,w2....들은 w의 기저벡터가 되는 것이고

a(k,i)는 단순히 선형 조합을 하기 위해 있는 스칼라 값들이다.

++여기서 i는 기존의 V의 몇 번째 기저 벡터를 변환한 것인지 표시해준다.

 

 

하지만 벡터는 여전히 행렬로도 표현가능하다고 했다.

따라서 V의 기저벡터를 다시 변환하는 것을 정리해보자

 

 

이렇게 연립되어있는 것 같은 느낌이 들면 행렬로 바꾸고 싶은 욕심이 생겨야 한다는데

난 욕심따윈 없지

 

아무튼 T(v)는 결국 W의 기저벡터 w를 만들어냈다.

 

 

 

행렬로 나타내면 이렇게 표현할 수 있다.

 

위의 행렬과 같아 보이지만 아래 식은 w로 묶여있다.

즉, W의 기저벡터로 묶여있다.

 

하지만 위에 식은 너무 복잡하게 보인다. 그래서 간단하게 하고자 한다.

**새로운 b를 정의해준다.

 

 

그렇게 되면 이렇게 간단하게 만들어진다.

 

 

아 행렬로 표현한다더니 왜 이렇게 하냐고 생각할 수 있다.

행렬의 핵심은 이쁘게, 기준을 잡고 만들어줘야 한다.

때문에 기준을 잡고자 이렇게 최대한 간단하게 만들어보았고

실제로는 이렇게 표현한다.

 

 

맨 오른쪽 c(i)행렬은 우리가 변환하려는 벡터를 열벡터로 나타낸 것이다.

a(i,j)로 이루어진 행렬은 기존에 있는 공간의 기저 벡터들을 선형 변환하여 변환된 벡터를 구하고 차례로 열 벡터로 만들어 붙인 확대 행렬이다.

**즉, 각 열이 v(i)를 선형변환시킨 것이다. 

 

다시 말해서 어떤 선형 변환이 있을 때

그에 대응하는 행렬 (M과 같은)을 알고 있으면 벡터 공간 V에서 W로 옮길 수 있는 것이다.

 

선형 변환 T가 행렬 M으로 표현되는 것이다.

결국 모든 선형변환은 그에 대응하는 행렬로 표현 가능하다.

 


 

하지만 우리는 일반적으로 3차원 공간에서의 선형 변환을 다룬다.

 

일반적으로는 이런 꼴을 많이 보는 것이다.

 

 

그렇다면 여기서 M이 무엇이냐?

a1,1 a,12 ... 등등이다

이것만 알면 선형 변환을 시킬 수 있다.

 

이제 변환에 대해서, 어떤 공간을 다른 공간으로 마음대로 다룰 수 있게 되었다.

다음 글에서는 어떻게 다룰지 알아보자

 

728x90
반응형
그리드형