상세 컨텐츠

본문 제목

선형대수의 선형변환 -> 차원이동

파이썬·장고·루비·알고리즘

by 김일국 2017. 7. 10. 14:57

본문

선형대수의 선형변환은 재미가 없다.

좀더 재미있는 상상을 한다면, 선형변환이라는 용어 대신에 차원이동이라는 문장을 사용하려고 합니다.

SF소설에서 처럼 3차원에서 4차원으로 또는 10차원으로 이동하는 장치를 개발할 때, 필요하지 않을까 합니다.

아래 3가지 예를 들어서 개념을 이해해 보려고 합니다.

1). 3차원공간에서 2차원공간으로 이동

2). 2차원공간에서 2차원공간으로 이동

3). 2차원공간에서 3차원공간으로 이동


1). T : R^3 -> R^2 로 감소 차원이동(벡터의 선형변환) : T( (2,1) ,(-2,5) ,(7,3) )에 대응되는 행렬 TM, 선형변환 T(M)을 구하면?

                                                x

TM = T(x ,y ,z) =   2  -2  7   X  (   y   ) = ( 2x-2y+7z, x+5y+3z )

                          1   5   3           z

T(M) = T(x, y, z) = (2x-2y+7z, x+5y+3z)


추가계산: 선형변환(사상식)이 있고, 기저(차원,basis=틸다)가 각각 주어졌을때 행렬식으로 표현하면?

선형변환 T(x,y,z) = (x+z, y+z), 선형변환 T ∈ L(R^3, R^2) 선형변환3차원->2차원이동

기저 A = { (0,1,1), (1,0,1), (1,1,0) }

기저 B = { (1,1), (0,1) }

선형변환식(x+z, y+z)으로 사상(매핑값)을 구한다. => 계수k x 기저A 형태로 만든 후 R^2 형태로 동치인 k1, k2를 행렬로 표시한다. 끝

계수 k1, k2를 미정계수법으로 구한다.

T(0,1,1) = (1,2) => ( k1(1,1) + k2(0,1) ) => 미정계수법( ( k1,k1) + (0,k2) )=> (k1=1, k2=1) = (1, 1)

T(1,0,1) = (2,1) => ( k1(1,1) + k2(0,1) ) => (k1=2, k2=-1) = (2,-1)

T(1,1,0) = (1,1) => ( k1(1,1) + k2(0,1) ) => (k1=1, k2=0) = (1, 0)

     1    2   1

=   1   -1   0

위 내용을 수식으로 표현하면 아리와 같다.


2). T : R^2 -> R^2 로 같은 차원이동(벡터의 선형변환) : T( (1,1), (-2,-1) ) = ( (2,1), (1,0) )에 대응되는 행렬 TM, 선형변환 T(M)을 구하면?

힌트: A=(1,1) 과 B=(-2,-1)은 행렬식으로 판별하여 일차독립임을 조건으로 갖는다.

즉, 아래와 같은 단위행렬을 갖는다. 

1 0

0 1

TM = T( (1,1), (-2,-1) ) = ( (2,1), (1,0) ) = -1    -1    X    ( A  ) =   (1, 0 ) = ( (1,0), (0,1) )

                                                            2     1             B         (0, 1)


T(M) = T(A, B) = ( -A+-B, 2A+B )


3). T : R^2 -> R^3 증가 차원이동(벡터의 선형변환) : T(x,y) = (6x-8y, 0, 3x-4y) 조건에서 커널(핵) Ker(T) 을 구하면?

커널이 있다는 것은 아래 조건과 같이 표현과 동치이다.

Ker(T) = { (x,y) 는 벡터V의 원소 | T(x,y) = O }

= (6x-8y, 0, 3x-4y) = { 0, 0, 0 }

이원일차연립방정식으로 풀면,

6x-8y = 0

3x-4y = 0

따라서 y = (3/4)x

Ker(T) = { (x, (3/4)x) | x 는 실수 }

= { x(1, 3/4) | x는 실수 } 즉, 커널은 2차원 벡터로 표현된다.


현직 프로그래머 입장에서 위 선형변환(차원이동)이 프로그램언어(C#,Java,Php) 또는 데이터베이스(오라클,Mysql)에서 사용되는 것을 본적은 없습니다.

아마 컴퓨터 그래픽 에서 사용되지 않을 까 예상해 봅니다.

관련글 더보기

댓글 영역