Else/도서 리뷰

[Coding The Matrix] Chapter 3. 벡터

자연상수 2023. 4. 5. 18:01

앞 장에서는 Field에 대해 소개하였고, 이번장에서는 Vector를 소개한다.

 

공학에서 한 용어가 여러 의미를 갖는 경우가 흔치 않은데, 이상하게 벡터는 비슷하지만 다른 의미를 갖는 정의를 여럿 갖고 있다.

 

  • 물리 : 크기와 방향을 갖는 물리량으로 정의
  • 수학 : Vector Space의 element로 정의...(vector란 무엇이다라고 정의하기 매우 어렵다.. 앞에서 설명해야 할게 너무 많다)
  • 컴퓨터 공학 : 대체로 length가 n인 list로 정의한다.($R^n$의 원소라고 생각하면 편할듯 하다)

 

이 책 또한 수학 저서가 아닌 컴퓨터 공학 도서에 가깝기에 세번째 정의를 따르고 있다.

 

(개인적으로 앞 장에서 Field가 나왔기에 Vector에 대한 소개보다는 Vector space를 알려주는게 더 올바르지 않나 생각된다)

 

 

Def

 

Field $F$와 positive integer $n$에 대하여, $n$개의 $F$의 원소들을 갖는 list를 $F$의 벡터라고 한다.
(책에서는 $F$ 상의 $n$-벡터라고 한다.)

 

e.g.) Field $Z_7$에 대해서, [1, 3, 5, 2]는 $Z_7$상의 4-벡터라고 볼 수 있다.

 

 

list 형식으로 표현되어 있는 vector를 다른 관점에서 살펴보자.

list는 index가 존재하고, 각 index에 값이 대응되는 자료형이다.

 

즉, 집합 $N = \{0, 1, ..., n-1\}$에 대하여, 값이 대응된다고 볼 수 있다.

이는 곧 vector를 함수로도 볼 수 있다는 것이다.

 

e.g. $0 \rightarrow 1, 1 \rightarrow 3, 2 \rightarrow 5, 3 \rightarrow 2$

 

따라서, 이러한 형태의 모든 벡터들을 $N$에서 $F$로의 함수들로 생각할 수 있고 아래와 같이 표기할 수 있다.

$\rightarrow F^N =$ { functions from $N$ to $F$ }

 

 

 

하지만 정의역이 꼭 N과 같이 숫자 index일 필요는 없다.

 

dictionary 또한 list처럼 각각의 고유한 key에 대해 하나의 value가 대응되는 구조로, 크게 본다면 list 또한 dictionary의 일종이라고 볼 수 있을 것이다.

(물론 python에서 구현은 다르게 되어있지만 구조가 그렇다는 것)

 

따라서, 벡터를 표현할 때 list가 아닌 dictionary 또한 유용하게 사용할 수 있다.

 

방금까지, 벡터란 무엇인지 정의하고, 벡터를 어떻게 표현할 수 있는지 확장 하였다.

 


다음은 벡터의 대수적 법칙들에 대해 설명한다.

이는 사실 신기한 것이 아닌 Vector Space의 정의이기에 vector가 해당 성질을 가지는게 당연하다.

결합법칙, 분배법칙 등의 법칙은 아래를 참고하자.

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

 

 

벡터와 스칼라의 곱 말고도, 벡터들 끼리의 곱 중 내적에 대한 소개가 있다.

두 벡터에 대해 내적 연산을 수행하면 스칼라 값이 나온다.

(내적의 의미에 대해서는 설명하지 않겠다.)

 

이를 활용하면 $aX=b$라는 식에서 x vector를 찾는 식을 생각해 볼 수 있다.

 

이는 결국 연립방정식 문제로 볼 수 있고, elementary row operation을 이용하여 값(벡터)을 구할 수 있다.