벡터 연산(Vector Operations)

학습로그/수학 2011. 2. 14. 11:40


 

벡터의 개념

물체의 운동을 기술하기 위한 물리량으로 정적인 위치만을 기술하는 스칼라 양으로는 부적합하다.  이런 요구 충족을 위해

벡터량이 19세기 비교적 최근에 등장하게 되었음. 벡터는 크기와 함께 방향을 갖는 물리량이다. 

프로그램 코드에서 스칼라수는 어떠한 변수에도(어떤 자료형이든) 적용가능하지만, 벡터 저장을 위한 내장 데이터 타입은

없어서 별도로 구현해야한다. 

 

변위와 거리

변위는 거리를, 속도는 속력을 벡터로 표현한 것이다.  변위는 마지막 위치에서 시작 위치를 뺀 값이지만, 거리는 중간에 거친 

모든 경로를 더한 값이다. 변위는 중간에 일아나는 모든 일에 대한 정보는 없어진다는 점때문에 프로그램에서는 운동을 작은

시간간격으로 쪼개어 정보손실을 보완한다.  (프레임 단위의 짧은 시간 간격으로...)

 


 극좌표와 데카르트 좌표

1차원 벡터는 양수, 음수만으로 벡터의 방향을 표현 가능하지만,  2차원, 3차원에서는 충분치 않다. 

2차원에서 벡터를 기술하는 2가지 형태로 극좌표와 데카르트 좌표가 있다.  극좌표는 벡터의 크기와 어떤 기준선으로 부터

벡터가 이루는 각으로 표현한 방법이며. 벡터가  어떤 모양인지 파악하기 쉬운 장점이 있다. 

 

벡터의 극좌표

벡터의 크기를  |A| , 벡터의 방향을 θ 라 할때, 

벡터 A = |A|@θ 로 표현함

데카르트 좌표는 벡터를 수평과 수직 변위로 표현하는 방법으로,  코딩 시 사용되는 방법이다. 벡터를 구성하는  2가지 구성요소를 수직과 수평성분이라 한다. 컴퓨터 화면은 격자형태로 설정 되어있기 때문에,  데카르트 좌표를 사용한다. 

 

벡터의 데카르트 좌표

벡터의 x축 단위벡터를 i, y축 단위벡터를 j라 하면, 

벡터 B = b1i + b2j

 

극좌표의 데카르트 좌표로의 변환 

극좌표로 표현된 벡터 A가 |A|@ θ일 때, 피타고라스의 정리를 이용하여  데카르트좌표로 다음과 같이 표현할 수 있다. 

A = a1i + a2j  (a1 = |A|cosθ, a2 = |A|sinθ)

 

 

 


벡터의 합과 차

두 벡터의 합을 시각적으로 표현하면, 한 벡터의 시작점을 다른 벡터의 끝점으로 수평이동 시키고, 움직이지 않은 벡터의 시작점과 움직인 벡터의 끝점을 연결하여 그려진 벡터가 두 벡터의 합이다. 

 

임의의 벡터 A, B에 대해서 교환법칙임 성립함 
A+B = B+A

두 벡터의 합 C+D 길이는 C , D의 길이를 각각 더한 것보다 더 짧다. 

|A+B| != |A| + |B|이기 때문에 극좌표로 표현된 벡터는 같은 방향이 아니면 더해서는 안된다는 것에 주의해야 한다. 

대신 데카르트 좌표로 변환하여 더해야한다. 

 

두 벡터의 합 

두 벡터 A= a1i + a2j , B = b1i + b2j 에 대하여,

A + B = (a1 + b1)i + (b1+ b2)j 

 

 벡터의 차는 두 번째 벡터를 반전하여 더하는 것과 같다. 

두 벡터의 차 

두 벡터 A = a1i + a2j, B = b1i + b2j 이면 

A - B = (a1 - b1)i + (a2 - b2)j

 

 

벡터의 스칼라곱, 정규화

벡터의 스칼라 곱은 벡터의 크기만을 늘리거나 줄이는 결과를 가져온다. 


극좌표 형식 벡터의 스칼라 곱

임의의 벡터 A = |A| @ θ에 대하여,

cA = c |A| @ θ

벡터의 크기가 스칼라 양을 곱한 벡터와 같다. 


데카르트 형식 벡터의 스칼라 곱

임의의 스칼라 c와 임의의 벡터 A = a1i + a2j 에 대하여,

cA = c a1i + c a2j

베터의 각 성분에 스칼라 양을 곱한 벡터와 같다. 

 

 

정규화(normalization)

벡터의 크기를 1로 맞추는 것을 의미한다. 벡터의 방향만을 사용하고 싶을 때, 크기가 1인 단위벡터로  만들어 사용하는 것이다. 

 극좌표 형식의 벡터 정규화는 벡터의 크기를 1로 바꾸고, 방향을 그대로 유지하면 된다. 데카르트 형식의 벡터는 벡터의 크기를

계산하고, 각 성분을 크기로 나누면 된다. 

 

  

2차원 벡터의 정규화 

임의의 벡터 A = [a1 a2]에 대하여,

 =  A / |A| = [ a1/ |A|  a2/ |A|  a3/ |A| ]

 

 


벡터의 내적(dot product) 

두 벡터의 내적은 그 결과가 스칼라 값이어서 스칼라적이라고도 한다. 내적은 두 벡터의 각 x성분의 곱과 각 y성분의 곱을

더한 결과이다. 두 벡터가 같은 차원이어야 가능하다는 것을 주의하자. 

  

2차원 벡터의 내적 

임의의 2차원 벡터 A = [a1 a2], B = [b1 b2]에 대하여,

A⋅B = a1 b1 + a2 b2

 

 내적이 중요한 이유는 비교적 적은 연산으로 두 벡터 사이의 각을 구할 수 있기 때문이다.

내적은 3차원 그래픽 분야에서 3차원 다각형의 보이지 않는 제거될 면을 판단하기 위해 사용된다.

(카메라와의 각이 90 이상인 다각형은 제거됨)

 

 

내적의 부호

 벡터 A 와 B 사이의 각을 θ라 할 때,

A⋅B < 0 이면(음수이면),  θ > 90˚

A⋅B = 0 이면,  A ⊥ B

A⋅B  > 0  이면(양수이면), θ< 90˚

 


두 벡터 사이의  각 

임의의 두 벡터 A, B 사이의 각을 θ라 하면, 

A⋅B = |A| |B| cosθ

위와 같은 공식을 이용하여, 두 벡터 가 이루는 각을 알 수 있다. 

 




벡터의 외적(cross product)

두 벡터를 곱하는 또 다른 방법으로, 외적의 결과는 벡터라는 점 때문에 벡터적이라고도 한다. 

 

외적 

임의의 두 벡터 A = [a1 a2 a3],  B = [b1 b2 b3]에 대하여,

 A x B = [(a2b3-a3b2)  (a3b1 - a1b3)  (a1b2 - a2b1)]

외적의 중요한 성질은 외적의 결과가 원래의 두 벡터와 모두 직교하는 벡터라는 점이다. 이 때문에 외적은 3차원 벡터에

대해서만 정의된다.

 

직교 벡터 

A x B  는 두 벡터 A, B에 모두 수직인 벡터 

 

벡터 A와 B를 포함하는 평면에는 수직인 2개의 방향이 있기 때문에 외적은 교환법칙이  성립하지 않는다.  

A x B != B x A

단 임의의 3차원 벡터 A,B 에 대해서 A x B = -(B x A)

외적은 표면 법선(surface normal)을 계산하는데 사용된다. 임의의 두 3차원 벡터는 하나의 면을 정의하는데, 표면 법선은

주어진 면에 수직인 길이가 1인 벡터를 말한다.

또한 두 벡터의 사이의 각을 구할시 외적을 사용할 수도 있다. (내적을 통해 구하는 것이 더 효율적이다.)

 

 

두 벡터가 이루는 각을 외적을 통해 구하기 위한 공식 

|A x B| = |A||B|sin

 

'학습로그 > 수학' 카테고리의 다른 글

일반각과 호도법  (0) 2011.02.14
삼각함수의 성질  (0) 2011.02.14
삼각함수  (0) 2011.02.14
벡터연산을 위한 클래스 구현(cpp)  (0) 2011.02.14
벡터 연산(Vector Operations)  (0) 2011.02.14
수학 교과과정 (초등학교~고등학교)  (0) 2011.02.13