들어가는 글: 1장에 이어 2장으로 갑니다 ㄱㄱ
점점더 오리무중입니다. 선형대수 책이 1장은 함수, 2장은 필드?? 사실 여기까지만 읽으면 필드가 무슨 뜻인지도 모르겠지만 좀더 가봅시다.
"필드는 덧셈과 곱셈 연산값이 정의되는 값들의 모음이다(43p)" --> 이 말이 더 어렵네요 ㅎㅎ
간단하게 실수의 필드, 복소수의 필드, 0과 1로 구성되는 필드.. 로 생각하시면 좀더 쉽습니다. 수들의 벌판이라고 생각해주세요. 골프치는 벌판이 필드자나요~
3 + 4i .. 이거 잘 아시죠? ㅎ
R , 실수 필드
C , 복소수 필드
GF(2), 0과 1로 이루어진 필드
--> 드디어 제글 #3과 #4에서 잠깐 언급한 갈루아 필드의 정의가 나왔습니다. 그렇습니다. GF(2)는 0과 1로만 이루어진 수의 벌판이었습니다. 그런데 왜 별도의 이름까지 가지게 되었을까요? 제가 책의 뒤쪽까지 읽어본 바로는 일종의 단순한 필드로 선형대수의 많은 속성을 비교적 단순하게 확인해볼 수 있기 때문입니다. 일종의 연습다마..라고나 할까요? 전 그런 느낌이었어요.
2장에서 복소수와 필드라는 단어를 언급한 이유는 복소수 필드는 평면을 이루기 때문입니다. 우리가 소위 2차원 평면을 (x,y) 좌표로 표현하는 것 처럼 3 + 4i도 복소 평면에서 (3,4)의 좌표를 이루기 때문이죠.
>> 슬슬 선형대수의 벡터(vector)와 비슷하게 느껴지기도 합니다. (3,4) 벡터 있자나요? 벡터는 세기(magnitude)와 방향(direction)으로 이루어져있다는 것을 상기해보세요.
두개의 복소수를 더하는 것을 평행이동(translation)이라고 합니다.
z1 = 3 + 4i ,
z2 = 1 + 1i 이면
z1 + z2 = 4 + 5i가 되죠.
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 가 됩니다. 짜잔 복소 필드(전.. 과거 수학시간에 복소 평면이라고 배웠던거 같기도 하네요~) 에서도 함수를 합성할 수 있게 되었습니다.
함수 합성에 대해서도 뒤에서 계속 응용하게 됩니다. 잘 보고 오셔야 되요~
여기부터 이 책이 진지해집니다 ㄷㄷㄷ
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
처음으로 머리가 지끈지끈해집니다. 편각이 머더라.. 고등학교 수학시간에 배운 내용이지만.. 다시 들으니 너무나도 새롭습니다.
1) 반지름이 r = 1 인 원의 둘레는 2π 입니다.
2) "원위의 점 z는 원의 가장 오른쪽 점이 1+ 0i에서 시작하여 z에 도착할 때까지 원을 따라 반시계 방향으로 이동하는 거리로 표현된다. 이러한 거리를 z의 편각이라고 한다."(54p)
90도, 180도와 같이 각도로 표현하는 것이라 이제 편각으로 각도를 표현해봅니다.
한번 읽었을 때 잘 이해가 되지 않아서 추가적으로 구글링을 해봤습니다.
아래 내용을 좀 횡설수설 하더라도 이해해주세요 @.@
오일러의 공식을 활용하면 임의의 복소수 z를 다음과 같이 표현할 수 있습니다.
z = r * e ^θi //이때 r은 반지름이고 , 단위원안에 있는 편각θ의 점은 e ^θi로 표현가능함.
>> 이제 이것을 t만큼 회전시켜보겠습니다.
r * e ^ (θ + t) i = r *e^θi * e^ti
= z * e^ti
가 됩니다. 복소 평면의 점을 정의하는 방식을 편각으로 바꾸니 , 회전후의 점을 지수함수의 곱으로 표현할 수 있게 되었습니다. 이런게 수학의 힘인 것 같습니다.
솔직히, 아직 (오일러의 공식)을 활용했을 때 z가 왜 그렇게 정의되는 지는 확 이해가되지는 않았습니다. 아래의 참고 문서들을 읽어보고 (복소수의 극형식)이나 그런 것으로 어렴풋하게 나마 알게 되었을 뿐입니다.
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)는 뒤에서도 많이 쓰이니 꼭 알아두세요~
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