1. 벡터(Vector)와 벡터 공간(Vector Space)

2022. 7. 24. 14:22Mathematics for CG

게임에서 캐릭터의 방향 및 변위를 표현하기 위해 벡터(Vector)라는 개념을 사용한다.

벡터는 벡터 공간(Vector Space)이라는 추상적인 공간에 존재하는데, 이 공간에 있는 벡터들은 다음과 같은 공리들을 만족한다.

 

  1. 덧셈의 교환 법칙 : $x + y = y + x$
  2. 덧셈의 결합 법칙 : $x + (y + z) = (x + y) + z$
  3. 덧셈의 항등원 : $x + 0 = x$
  4. 덧셈의 역원 : $x + (-x) = 0$
  5. 스칼라 분배 법칙 : $a(x + y) = ax + ay$
  6. 벡터 분배 법칙 : $(a + b)x = ax + by$
  7. 곱셈의 항등원 $1 * x = x$
  8. $(ab)x = a(bx)$

우리가 당연히 사용해왔던 벡터의 덧셈, 스칼라 곱과 같은 연산들은 사실 벡터들이 위와 같은 성질들이 정의된 벡터 공간 안에 존재하기 때문에 가능했던 것이다.

 

벡터 공간은 위 8가지 공리들 말고도 다음과 같은 중요한 성질이 있다.

  • 벡터 공간 V에 있는 임의의 벡터 u, v에 대하여, u + vV에 속한다.
    (즉, 덧셈에 닫혀있다.)
  • 실수체 R에 있는 스칼라 a와 벡터 공간 V에 있는 벡터 u에 대하여, avV에 속한다.
    (즉, 곱셈에 닫혀있다.) 

 

예를 들어, 우리가 흔히 사용하는 각 축이 실수로 표현된 2차원 집합을 생각할 수 있다.

$$ \mathbb{R}^2 = \{(x,y) \;|\; x,y  \in \mathbb{R}\} $$

이 집합에 있는 임의의 두 벡터를 더해도 위 집합에 포함되며, 한 벡터에 실수 스칼라 값을 곱해도 위 집합에 포함된다. 또한, 위에 적힌 8가지 공리도 만족하므로 이 집합은 벡터 공간이다. 

 

그럼 벡터 공간 $V$에서 임의의 집합 $S$를 선택했을때, 이 집합 $S$도 벡터 공간이라고 볼 수 있을까?

확실한 것은, 벡터 공간 안에 있는 집합이므로 위의 8가지 공리는 자동으로 성립한다는 것이다. 그러므로 우리는 벡터의 덧셈과 스칼라 곱에 대해 닫혀있는지만 확인하면 된다.

 

예를 들어, 벡터공간 $ \mathbb{R}^3 $에 있는 임의의 집합 $S$를 다음과 같이 정의해보자.

$$ S = \{(x,y, 0) \;|\; x,y  \in \mathbb{R}\} $$

 

이 집합이 덧셈과 스칼라 곱에 대해 닫혀있다는 것을 다음과 같이 간단하게 증명할 수 있다.

$$ (x_0,\; y_0,\; 0) + (x_1,\; y_1,\; 0) = (x_0 + x_1,\; y_0 + y_1,\; 0) \in S $$

$$ a(x_0, y_0, 0) = (ax_0, ay_0, 0) \in S $$

이렇게 벡터 공간안에서 덧셈과 스칼라 곱에 대해 닫혀있는 집합을 벡터 부분 공간(Vetor Subspace)이라고 한다.


다음은 부분 공간이 아닌 집합의 예이다.

$$ S = \{(x,y, 1) \;|\; x,y  \in \mathbb{R}\} $$

$$ (x_0,\; y_0,\; 1) + (x_1,\; y_1,\; 1) = (x_0 + x_1,\; y_0 + y_1,\; 2) \notin S $$

$$ 0 * (x_0, y_0, 1) = (0, 0, 0) \notin S $$

바로 위 예제를 통해 알 수 있듯이, 부분 공간이 되기 위해서는 집합 S 안에 있는 어떤 벡터에 0을 곱해도 집합 S에 포함이 되어야하므로 부분 공간은 반드시 0 벡터를 포함한다.

 

벡터 공간 및 부분 공간이라는 추상적인 개념이 정의된 이유는, 벡터들이 항상 만족하는 연산들을 일반화하기 위함이다. 우리가 사용하는 벡터가 몇차원 벡터든 간에, 이러한 공간안에만 있으면 교환 법칙, 결합 법칙, 덧셈, 스칼라 곱 등 이러한 연산들이 항상 정의가 되는 것이다. 

 

다음 글에서는 선형 결합(linear combination)과 선형 독립(linear independence)에 대해 알아보도록 하겠다.