brunch

You can make anything
by writing

C.S.Lewis

[선형대수]#5 <코딩 더 매트릭스> 2장 정리

들어가는 글: 1장에 이어 2장으로 갑니다 ㄱㄱ 


2장 필드(Field) 


점점더 오리무중입니다. 선형대수 책이 1장은 함수, 2장은 필드?? 사실 여기까지만 읽으면 필드가 무슨 뜻인지도 모르겠지만 좀더 가봅시다. 


"필드는 덧셈과 곱셈 연산값이 정의되는 값들의 모음이다(43p)" --> 이 말이 더 어렵네요 ㅎㅎ 

간단하게 실수의 필드, 복소수의 필드, 0과 1로 구성되는 필드.. 로 생각하시면 좀더 쉽습니다. 수들의 벌판이라고 생각해주세요. 골프치는 벌판이 필드자나요~ 


2.1 복소수


3 + 4i .. 이거 잘 아시죠? ㅎ 

R , 실수 필드 

C , 복소수 필드 

GF(2), 0과 1로 이루어진 필드 

--> 드디어 제글 #3과 #4에서 잠깐 언급한 갈루아 필드의 정의가 나왔습니다. 그렇습니다. GF(2)는 0과 1로만 이루어진 수의 벌판이었습니다. 그런데 왜 별도의 이름까지 가지게 되었을까요? 제가 책의 뒤쪽까지 읽어본 바로는 일종의 단순한 필드로 선형대수의 많은 속성을 비교적 단순하게 확인해볼 수 있기 때문입니다. 일종의 연습다마..라고나 할까요? 전 그런 느낌이었어요. 


2.2 복소수의 덧셈 


2장에서 복소수와 필드라는 단어를 언급한 이유는 복소수 필드는 평면을 이루기 때문입니다. 우리가 소위 2차원 평면을 (x,y) 좌표로 표현하는 것 처럼 3 + 4i도 복소 평면에서 (3,4)의 좌표를 이루기 때문이죠. 


>> 슬슬 선형대수의 벡터(vector)와 비슷하게 느껴지기도 합니다. (3,4) 벡터 있자나요? 벡터는 세기(magnitude)와 방향(direction)으로 이루어져있다는 것을 상기해보세요. 


두개의 복소수를 더하는 것을 평행이동(translation)이라고 합니다. 

z1 = 3 + 4i , 

z2 = 1 + 1i 이면 

z1 + z2 = 4 + 5i가 되죠. 


2.3 평행이동 합성하기 


1장에서 배운 내용을 여기서 연결합니다. 함수 f와 g는 g○f 로 합성할 수 있다고 했죠? 

만약 f1(z) = z1 + z , f2(z) = z2 + z 라면 

이 둘을 합성하면 어떻게 될까요? 


f1○f2 (z) = f2 ( f1 (z) ) 

                 = f2 (z1 + z) 

                  = z2 + z1 + z 가 됩니다. 짜잔 복소 필드(전.. 과거 수학시간에 복소 평면이라고 배웠던거 같기도 하네요~) 에서도 함수를 합성할 수 있게 되었습니다. 


함수 합성에 대해서도 뒤에서 계속 응용하게 됩니다. 잘 보고 오셔야 되요~ 


2.4 복소 평면의 회전 


여기부터 이 책이 진지해집니다 ㄷㄷㄷ 


1) 180도 회전하기 

g(z) = -1 * z    //모든 것을 함수라고 생각해봅시다. 180도 회전시키는 함수 


2) 90도 회전하기 

h(z) = i * z   //이건 90도 회전하는 함수. 


만약 h○h(z) 하면 180도 회전이 될까요? 책에 나온 것은 아니지만 한번 해보겠습니다. 

h○h(z) = h (h (z) ) 

               = h  (i *z) 

               = i * i * z   //i *i = -1 인거 고등학교 수학시간에 배우셨죠? 저도 오랜만이라 ㅎ 

               = -1 * z 


2.5 편각 


처음으로 머리가 지끈지끈해집니다. 편각이 머더라.. 고등학교 수학시간에 배운 내용이지만.. 다시 들으니 너무나도 새롭습니다. 

1) 반지름이 r = 1 인 원의 둘레는 2π 입니다. 

2) "원위의 점 z는 원의 가장 오른쪽 점이 1+ 0i에서 시작하여 z에 도착할 때까지 원을 따라 반시계 방향으로 이동하는 거리로 표현된다. 이러한 거리를 z의 편각이라고 한다."(54p)


90도, 180도와 같이 각도로 표현하는 것이라 이제 편각으로 각도를 표현해봅니다.  


2.6 오일러의 공식 , 라디안 회전  


한번 읽었을 때 잘 이해가 되지 않아서 추가적으로 구글링을 해봤습니다. 

아래 내용을 좀 횡설수설 하더라도 이해해주세요 @.@ 


오일러의 공식을 활용하면 임의의 복소수 z를 다음과 같이 표현할 수 있습니다. 

z = r * e ^θi    //이때 r은 반지름이고 , 단위원안에 있는 편각θ의 점은 e ^θi로 표현가능함.    


>> 이제 이것을 t만큼 회전시켜보겠습니다. 


r * e ^ (θ + t) i = r *e^θi * e^ti 

                          = z * e^ti 

가 됩니다. 복소 평면의 점을 정의하는 방식을 편각으로 바꾸니 , 회전후의 점을 지수함수의 곱으로 표현할 수 있게 되었습니다. 이런게 수학의 힘인 것 같습니다. 

 

솔직히, 아직 (오일러의 공식)을 활용했을 때 z가 왜 그렇게 정의되는 지는 확 이해가되지는 않았습니다. 아래의 참고 문서들을 읽어보고 (복소수의 극형식)이나 그런 것으로 어렴풋하게 나마 알게 되었을 뿐입니다. 


2.7 대망의 GF(2) 


GF(2)는 갈루아 필드로 0,1로만 이루어진 공간입니다. GF(2)의 산술 연산은 다음과 같습니다. 


0*0 = 0    , 0 + 0 = 0 

0*1 = 0    , 0 + 1 = 1

1*0 = 0    , 1 + 0 = 0 

1*1 = 1    , 1 + 1 = 0 


1+1 = 0 이라는 것만 특이한데..이건 어쩔수 없을 거 같아요. 정의역, 공역이 모두 {0,1} 이니까요. 


책에는 네트워크 코딩(Network coding)이라는 엄청난 예제가 있습니다. 

실제로 어떻게 스트리밍에 적용되는지는 모르겠으나 이론적으로는 엄청난 거니까 꼭 읽어보세요. 

비밀은 GF(2)의 덧셈 연산을 활용합니다. 


예를 들어 S는 c와 d에 비디오 스트리밍을 전송하려고 합니다. 비디오 스트리밍을 하기 위해서는 2Mbps의 대역폭이 필요한데 각 노드는 1Mbps만 전송할 수 있습니다. S는 동시에 두 군데로 2Mbps를 보낼 수 있습니다. 어떻게 해야 할까요? 


S에서 좌측으로는 b1을 보내고 우측으로는 b2를 보낸다고 하면 , 

가운데에서 간단한 연산을 통해 b1 + b2를 보내면 됩니다. 단 b1과 b2가 GF(2)위에 있다고 하면 됩니다. 


c는 b1과 b1+b2를 받게 되고 d는 b2와 b1+b2를 받게 됩니다. 

우리는 위의 덧셈 연산표에서 (b1, b1+b2)를 받으면 b2를 찾을 수 있고 

반대로 (b2, b1+b2)를 받으면 b1을 바로 결정할 수 있기 때문입니다. 


저는 이거 이해했을 때 소름 돋았어요 @.@ 머리 진짜 좋구나...  

GF(2)는 뒤에서도 많이 쓰이니 꼭 알아두세요~ 

책 60page 발췌 



Next: 

앞으로 3장, 4장 공부해가면서 재미있는 얘기 들려드릴께요~ 


감사합니다. 

2018.10.14 



참고

1) 위키피디아 - 오일러의 공식 

https://ko.wikipedia.org/wiki/%EC%98%A4%EC%9D%BC%EB%9F%AC%EC%9D%98_%EA%B3%B5%EC%8B%9D 

2) 네이버 지식 백과 - 오일러의 공식 

https://terms.naver.com/entry.nhn?docId=3569080&cid=58944&categoryId=58970 

3) 네트워크 코딩 

https://en.wikipedia.org/wiki/Linear_network_coding 


매거진의 이전글 [선형대수] #4 <코딩 더 매트릭스> 1장 정리
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari