'모과이/수학공부'에 해당되는 글 2건

  1. 2013.11.30 벡터의 내적
  2. 2010.01.27 벡터 연산

이번 포스팅은 지난번에 이야기했던 대로 내적에 대해 알아보도록 합시다. 내적에 대한 개념은 실은 물리학에서 가장 잘 사용되어지는 개념중에 하나입니다. 내적은 배우지 않았지만, 물리학을 배우셨다면, 심심치 않게 간접적으로 내적이 이용되었음을 알 수가 있는데요. 수학적으로 내적이 어떻게 정의되었는지 확인해 보고, 물리학 측면에서 어떻게 내적이 사용되었는지도 구체적으로 분석해 보도록 하겠습니다.

 

 

수학도 짜증나는데, '물리'... 의 ㅁ 자만 들어도 치가 떨려요... 라고 생각할 수도 있는데,ㅠㅠ .... 일단, 그래도 긍정적인 마음으로 잘 받아들여 봅시다..

우리가 '일'을 한다는 건 '노동'... '먹고 살기 위해 하는것' 이라고 할 수도 있겠지만, 물리학적으로 '일'을 한다는 것은 물체에 힘을 줘서 적당한 거리만큼 이동하였을 때, 그게 얼마나 되는지를 측정하는 거라 볼 수 있습니다.

 

 

예를 들어서 내가 F만큼의 힘을 주어서, s의 변위만큼 이동했다. 라고 이야기 한다면, 해 준 일의 개념인 W는

 

W%5Cquad%20%3D%5Cquad%20Fs%20

 로 이야기 해 줄 수 있습니다.

 

 

그런데, 만약에 문제는 힘의 방향과 이동방향이 일치하지 않을 때의 경우인데, 지금 그림처럼

 

 

요렇게, 이동하는 경우입니다.

 

 

우리가 물리학적에서 일을 한다는 개념의 정의에 전제된 것은 '힘의 방향이동방향이' 서로 동일할 경우에만 일을 한다고 해줍니다.  왜 그렇게 정의하였는가염?? 을 묻는 것은 물리 포스팅을 할 때, 기회가 되면 설명해 드리고, 어찌됬던 위의 이 밑줄 친 것은 Defintion 그러니까, '정의' 입니다. 일단, 정의는 그렇게 함이 타당하기 때문에 약속한 것이므로, 우리는 저 말을 뿌리로 해서 잘 분석해보면, 위의 경우는 힘 F 성분에 대해, 수평성분인 cos성분과 수직성분인 sin으로 분해 해 볼 수가 있습니다.

 

 

이 때, 이 상황을 정의에 맞춰보면 힘의 방향과 이동방향이 동일한 경우로 작용할 경우에만 일을 하는 거라 했으니, 이동방향의 수직 성분인 sinθ 만큼 작용한 힘은, 이 물체에 일을 해준게 아닌게 됩니다. 그러면, 실제 저 아찌가 해준 일은

 

W_%7B%20%EC%95%84%EC%B0%8C%20%7D%5Cquad%20%3D%5Cquad%20(Fcos%5Ctheta%20)s%5Cquad%20%3D%5Cquad%20Fscos%5Ctheta%20%20

 

 

가 됩니다. 여기서 말한 F와 s는 모두, 방향성이 있는 벡터값들입니다. F는 힘의 방향과 크기.. 두 개 있고, s의 경우도 얼마만큼 이동할거느냐의 크기와 어디로 움직일 거냐(동서남북...)과 같은 방향이 있습니다.

 

이 두 벡터량에서, 우리는 위의 '일'개념에 타당할 수 있는 내적을 정의할 수 있는데,

바로 F,s의 내적을 다음과 같이 정의하고,

 

W%5Cquad%20%3D%5Cquad%20%5Cvec%20%7B%20F%20%7D%5Ccdot%20%5Cvec%20%7B%20S%20%7D%20

 

 

이동 방향과, 작용하는 힘 사이의 각을 θ라고 할 때,

 

%5Cvec%20%7B%20F%20%7D%5Ccdot%20%5Cvec%20%7B%20S%20%7D%5Cquad%20%3D%5Cquad%20%7C%5Cvec%20%7B%20F%20%7D%7C%7C%5Cvec%20%7B%20S%20%7D%7Ccos%5Ctheta%20%20

 

로 정의하는 겁니다. 이러면 아까처럼, 힘의 방향과 이동방향이가 같은 경우엔 , 그 방향으로 100% 쓰인 거니까,

 

 

W%3D%5Cvec%20%7B%20F%20%7D%5Ccdot%20%5Cvec%20%7B%20S%20%7D%5Cquad%20%3D%5Cquad%20%7C%5Cvec%20%7B%20F%20%7D%7C%7C%5Cvec%20%7B%20S%20%7D%7Ccos0%5Ccir%20%3D%7C%5Cvec%20%7B%20F%20%7D%7C%7C%5Cvec%20%7B%20S%20%7D%7C%20

 

 

 가 되고, 나머지 경우는 각도에 해당하는 cosθ만큼이 곱해져서, 일의 정의에 맞는 물리량을 잘 계산할 수가 있습니다.

 

 

내적을, 이제 물리 개념이 아닌, 일반적인 벡터에 적용해보면

 

<벡터의 내적> 

 

두 벡터 a,b에 대해 ab가 이루는 각이 θ라 할 때, 두 벡터의 내적 a·b를 다음과 같이 정의한다.

 

 

 

%5Cvec%20%7B%20a%20%7D%5Ccdot%20%5Cvec%20%7B%20b%20%7D%5Cquad%20%3D%5Cquad%20%7C%5Cvec%20%7B%20a%20%7D%7C%7C%5Cvec%20%7B%20b%20%7D%7Ccos%5Ctheta%20%20

 

 

 

 

  이 때 내적을 나타내는 표현은 벡터 사이의 ' · ' 를 이용하여 표현하는 건데 이 것을 '×' 기호를 사용한다거나

곱셈 기호 생략하듯이 생략하거나 표현해서는 절대 안된다.

 

(벡터의 연산자에는 내적 말고도 다른게 많아서, × 기호를 사용하는 것이든지, 기호를 생략하는 것이든지의 의미는 내적 말고 다른 연산자를 의미하기 때문이다.)

 

 

 

 

 

아... 물론, 그러한 개념을 평면이 아닌 공간상의 벡터에서도 잘 표현해 줄 수 있습니다. 공간벡터 상의 문제는 두 벡터가 꼬인 위치에 있을 수 있는 경우(③)에 있지만,

 

 

 벡터의 상등 개념에 의해, 벡터를 적절히 평행이동시키면 동일 평면 상에 있도록 해 줄 수 있으니까, 각도 θ를 잘 알 수 있는 거고, 그러니까 문제가 생기지 않습니다. 

 

 

 

 

 

아차차 또하나, 벡터 내적 결과물의 값은 스칼라량입니다. 계속 벡터량, 스칼라량이라는데서 주목을 해주셔야 하는데, 벡터량은 방향과 크기가 둘다 있고,

스칼라는 크기만 가지고 있는겁니다. 아하! 그러니까 벡터의 내적이라 함은 두 벡터량 끼리 곱하는건데, 그 결과는 방향이 없는 스칼라값이다... 이렇게 해석해야 한다는 것입니다 :)

 

 

 

 

 

 

 

 

 

 

한편, 이 벡터의 내적에 cos성분이란 걸 잘 고려해보면, 정사영에 대한, 개념과도 많이 닮아 있는데요. 우리가 앞서 정의했던 내적표현

 

 

 

 

 

 

%5Cvec%20%7B%20a%20%7D%5Ccdot%20%5Cvec%20%7B%20b%20%7D%5Cquad%20%3D%5Cquad%20%7C%5Cvec%20%7B%20a%20%7D%7C%7C%5Cvec%20%7B%20b%20%7D%7Ccos%5Ctheta%20%20

 

 에 주목해보면, 이 식을

 

%5Cvec%20%7B%20a%20%7D%5Ccdot%20%5Cvec%20%7B%20b%20%7D%5Cquad%20%3D%5Cquad%20%7C%5Cvec%20%7B%20a%20%7D%7C(%7C%5Cvec%20%7B%20b%20%7D%7Ccos%5Ctheta%20)%20

 

이렇게 쓰는 것 무리없어 보입니다. 단순히 괄호를 묶은건데,

결합법칙이 적용되어서 괄호의 연산을 먼저 하겠단 겁니다.

 

아.. 그런데 이 b 크기의 cos성분은 b벡터 성분에 대한 a벡터

위로의 정사영이라고 해석할 수 있습니다.

 

 

 

 

아하, 그래서 내적을 a의 크기에 b를 a로 내린 정사영에 해당하는 크기를 곱한것이구나~ 이렇게도 해석할 수도 있습니다.

 

 

 

 

 

 

그러나 한편으로는

 

 

 

%5Cvec%20%7B%20a%20%7D%5Ccdot%20%5Cvec%20%7B%20b%20%7D%5Cquad%20%3D%5Cquad%20(%7C%5Cvec%20%7B%20a%20%7D%7Ccos%5Ctheta%20)%7C%5Cvec%20%7B%20b%20%7D%7C%20 ........ ①

 

이렇게도 해석할 수 있는 것 아닙니까?  어차피 내적 연산의 결과물은 스칼라량이기 때문에 , 우변의 값들은 모두 스칼라값을 의미하는데

a의 크기,|a| 라던가 b의 크기 |b|, 그리고 cosθ 는 모두 스칼라 값이여서 이렇게 쓸 수도 있습니다. 실수 세계에서는 교환,결합법칙들이 잘 성립한다는 걸 알고 있습니다.

이것은 무엇을 이야기할까요...?

 

 

 

 

 

흐음.. 이것은 a벡터 성분에 대한 b벡터 위로의 정사영의 개념으로 볼 수 있습니다.  하는 걸 알 수가 있죠! 옆에 보시는 그림처럼요...

 

아, 그러니까 이 두 결과에서는 어느 대상을 어느 쪽으로 정사영 시킬거느냐에 따라 다른 관점으로 해석될 수 있는 거구요.

 

 이 ①식을 다시 교환법칙에 의해 변형시켜주면,

 

%5Cvec%20%7B%20a%20%7D%5Ccdot%20%5Cvec%20%7B%20b%20%7D%5Cquad%20%3D(%7C%5Cvec%20%7B%20a%20%7D%7Ccos%5Ctheta%20)%7C%5Cvec%20%7B%20b%20%7D%7C%5C%5C%20%5Cquad%20%5Cquad%20%5Cquad%20%5Cquad%20%5Cquad%20%3D%5Cquad%20%7C%5Cvec%20%7B%20b%20%7D%7C(%7C%5Cvec%20%7B%20a%20%7D%7Ccos%5Ctheta%20)%20

 

 괄호를 제거하고 , 다시 내적의 정의에 맞춰 정리해보면,

 

%7C%5Cvec%20%7B%20b%20%7D%7C%7C%5Cvec%20%7B%20a%20%7D%7Ccos%5Ctheta%20%5Cquad%20%3D%5Cquad%20%5Cvec%20%7B%20b%20%7D%5Ccdot%20%5Cvec%20%7B%20a%20%7D%20

 

 

 의 개념으로도 볼 수 있습니다. 아하!

우리는 다음번에 더 자세히 설명할 거지만, 벡터의 내적에 연산법칙에 해당하는 '교환법칙' 이란 성질을 얻었습니다.

 

 

<벡터의 내적 연산의 성질>

 

벡터의 내적에서 교환법칙이 성립한다.

 

%5Cvec%20%7B%20a%20%7D%5Ccdot%20%5Cvec%20%7B%20b%20%7D%5Cquad%20%3D%5Cquad%20%5Cvec%20%7B%20b%20%7D%5Ccdot%20%5Cvec%20%7B%20a%20%7D%20

'모과이 > 수학공부' 카테고리의 다른 글

벡터 연산  (0) 2010.01.27
Posted by 모과이IT
,

1.  벡터 vs 스칼라

 

 우리가 흔히 하는 셈에서 다루는 값은 스칼라입니다. 그냥 스칼라는 그런수죠. 우리가 초,중,고 다니면서 수학시간에 열심히 계산할때 사용한 대부분의 수. 즉 방향이 없는 크기들입니다..

 벡터는 방향과 크기를 모두 함께 가지고 있는 값입니다. 내가 가고자 하는 목적지가 지금 위치로부터 100미터 떨어져 있다와 북쪽으로 100미터 떨어져있다가 스칼라와 백터의 차이점입니다.

 

거리나 속력은 스칼라값을 말하는 단위입니다. 변위나 속도는 벡터값을 말하는 단위이고요.

변위는 거리라는 스칼라값을 벡터로 표현한것이고 속도는 속력이라는 스칼라값을 벡터로 표현한 것입니다.

시속 100km 는 속력이고 동쪽으로 시속 100km 라고 하면 속도가 되는 것이죠.

 

 벡터의 값에는 방향이 있는데 이것을 다루는 방법을 이야기 하자면 1차원에서는 방향이 2개 입니다. 음수나 양수로 방향을 표시할 수 있습니다. 예를 들어서 오른쪽에서 왼쪽으로 스크롤되는 횡스크롤 게임(D&D같은)이 있다고 할때 캐릭터가 오른쪽으로 가면 양수이고 왼쪽으로 가면 음수가 되는 것입니다.

 마찬가지로 위에서 아래로 종스크롤되는 게임(1945 striker 같은)에서는 위로가면 양수 아래로 가면 음수가 됩니다.

 

 실제 수를 넣어서 문제를 보자면 위아래로만 움직일 수 있는 퐁 게임에서 반사판의 중심이 (20,400)에서 (20,50)까지 움직였다면 변위는 얼마일까요?

 위,아래로만 움직일 수 있기 때문에 x좌표의 값은 변화없이 20으로 고정이 됩니다. 그렇다면 y 값을 살펴볼까요. y의 값이 400 에서 50으로 달라졌네요. 따라서 변위는 -350 입니다.

 

 변위를 다룰때는 방향을 고려하는 것이 매우 중요합니다. 스칼라 양인 거리와 벡터량인 변위는 매우 큰 차이가 있기 때문입니다.  변위를 계산할때 고려해야 할 것은 시작점과 끝점의 위치뿐이고 그 사이에 일어나는 일은 그다지 중요하지 않습니다.

 풋볼경기를 예로 들어보면 다음과 같습니다.

[풋볼 선수의 변위]
 
 볼 경기에서 한 선수가 20야드 라인에서 공을 잡고 달리기 시작합니다. 도중에 수비수들을 피해 요리조리 빠져나가며 계속 달려나가다가 50 야드 라인에서 태클을 당했다면 이 선수의 전진 거리로 인정되는건 A라인이 아니라 B 라인이 됩니다. 벡터도 이와 마찬가지입니다. 도중에 지그재그로 가던지 곧바로 가던지 결국 중요한것은 출발점과 도착점 뿐이라는 것이죠.
 
 위의 그림에서 A 값은 스칼라 값이고 B 값은 벡터 값이 되는 것입니다.
=================================================
|      변위
|      ΔX = X2 - X2
================================================= 
 
 자자 그럼 문제 나갑니다.  슈퍼마리오 게임을 하고 있는데 수평위치 200픽셀에서 시작햇습니다. 오른쪽으로 마구마구 이동하다가 250픽셀쯤 왔을때 버섯을 놓친 것을 깨닫고 다시 100픽셀에 있는 버섯을 먹고 왔습니다. 그 후 마리오는 다시 데이지 공주가있는 450 픽셀까지 달려가 공주를 만났다면 이 마리오의 최종 변위는 몇일까요? 또 실제 이동거리는 얼마일까요?
 
 최종변위부터 계산할까요? 시작점이 200픽셀이고 도착점이 450픽셀이니 450 - 200 =  250 간단하죠?
실제 이동거리도 간단합니다. 처음 200픽셀에서 250픽셀까지 갔을때 50픽셀을 이동했고 다시 버섯이 있는 100픽셀까지 이동했으니 150 픽셀을 더 가서 현재까지 200픽셀을 이동했습니다. 그 후에 공주가 있는 450픽셀까지 이동했으니 추가로 350 픽셀을 더 이동했네요. 그래서 실제 이동거리는 550픽셀이 되는 것입니다.
 
 
 
 
 2. 벡터의 기술 방법
 
 앞에서 우리는 1차원 벡터의 방향을 기술할때 양수와 음수만으로 충분하다는 것을 알았습니다.
하지만 2차원과 3차원에서는 이것만으로는 충분하지 않습니다.
 2차원에서 벡터를 기술하는 방법은 2가지가 있습니다. 그것은 바로 극좌표와 데카르트 좌표계입니다. 먼저 극좌표계부터 살펴보겠습니다.
[극좌표로 표현한 벡터 A]
 
극좌표는 벡터가 실제로 어떤 모양인지를 파악하는 가장 쉬운 방법입니다.
===================================================================
|   벡터 A 의 크기를  ||A|| 라 하고, 벡터의 방향을 θ라 할때
|   벡터 A = ||A|| @ θ
===================================================================
 
 
 
데카르트 좌표는 조금 덜 직관적이지만, 벡터를 코딩할때 사용하는 형식입니다.

극좌표와 같이 길이와 방향으로 벡터를 기술하는 대신, 벡터를 수평과 수직 변위로 나타낼 수도 있으며 이것은 데카르트 좌표계의 방식과 매우 유사합니다. 데카르트 좌표를 구성하는 두가지 요소는 수평과 수직성분이며 이렇게 표현한 형식을 i j  형식이라고 합니다.

 

====================================================================

|   데카르트 좌표 (벡터 성분)

|   벡터의 x 축 방향의 단위벡터를  i^ ,  y 축 방향의 단위벡터를 j^ 라고하면,

|   벡터 B = b1 i^  + b2 j^

======================================================================

** 단위벡터를 나타내는 문자가 원래는 i 위에 ^ 이 모자처럼 씌어진 그림입니다만 키보드에서 적절한 문자를 찾을 수 없어서 뒤에다가 썻으니 이점을 숙지하여 다른 책이나 자료를 볼때 혼동하지 마시길바랍니다. 아래 그림을 참고하시기 바랍니다.

 

[데카르트 좌표로 표현된 벡터 B]

 

 

컴퓨터의 화면은 격자 형태로 설정되습니다. 그렇기 때문에 코딩을 할때 데카르트 좌표를 사용합니다.

혹 극좌표를 사용하려고 한다고 해도 결국은 데카르트 좌표로 변환하여 사용해야 합니다. 극좌표에서 데카르트좌표로 변환하는 방법은 아래 그림과 같습니다.

 

[극좌표에서 데카르트 좌표로의 변환]
 
=====================================================
|   극좌표에서 데카르트 좌표로의 변환
|   벡터 A 가 ||A|| @ θ  일때
|   A = b1 i^  +  b2 j^
|   단, b1 = ||A|| cos θ , b2 = ||A|| sin θ
=====================================================
 
 그럼 예문을 하나 보면서 확실히 기억해볼까요?
벡터 A가 변위 벡터이고,  A = 20m @ 30˚ 일때  이 벡터를 데카르트 좌표 형식으로 변환해 보세요.
 
위의 공식을 잘 보세용 먼저 A를 두 요소로 분해하기 위해 사인과 코사인을 사용합니다.
 
b1 =   || A || cos θ    =     20 cos 30˚   =  20(0.8660)  =  17.32
b2 =   || A || sin θ    =    20 sin 30˚   =   20(0.5)   =   10
 
그래서 A = 17.32 i^  +  10 j^ 입니다.
 
 
 반대로 데카르트 좌표를 극좌표로 변환도 가능합니다.
========================================================
|   벡터 B 가   b1 i^ + b2 j^ 일 때,
||B|| = √(b1)² + (b2)² ,  θ = tan-1 (b2 / b1)     <--- tan-1 이 아크탄젠트라는거 알고 계시죠? ^^;;
========================================================
 
예제를 하나 살펴볼께요.
벡터 3i^ + 4j^ 를 극좌표로 변화하여 보세요.
 
먼저 B 의 크기를 계산합니다
||B|| = √(b1)² + (b2)²  =  √ 3² + 4²  =  √ 9 +16 = √25 = 5
 
B의 크기를 구한 다음에는 방향을 계산합니다.
θ = tan-1 ( b2 / b1 ) = tan-1 (4/3) = 53.1˚ (근사값입니다.)
 
따라서, 극좌표로는 B = 5 @ 53.1˚ 입니다.
 
 데카르트 좌표를 2차원에서 3차원으로 확장 할 수도 있습니다. 2차원에는 없는 z 축을 추가해주기만 하면 됩니다. 간단하죠? 공식은 다음과 같습니다.
 
====================================================================================
|   3차원 데카르트 좌표 ( 벡터 성분 )
|   벡터의 x 축 방향의 단위벡터를 i^  , y축 방향의 단위벡터를 j^  ,  z 축 방향의 단위벡터를  k^ 라고 하면,
|   벡터 B = b1 i^ + b2 j^ + b3 k^
=====================================================================================
 
 데카르트 좌표 형식의 벡터는 i, j 형식 대신 종종 행렬의 한 열이나 한 행으로 표기 되기도 합니다.
                                                                                    5
예를 들어보면 2차원 벡터 A = 5 i^  +  6 j^  는  [5,6]  또는  [  6  ] 으로 표기할 수 있습니다. 
                                                                                            7
마찬가지로 3차원 벡터 B = 7 i^  +  8 j^  +  9 k^ 는 [ 7, 8 ,9 ] 또는 [ 8 ] 라고 표기할 수 있습니다.
                                                                                            9
 
 
 
 
3 벡터의 합과 차
 
   벡터량을 시각적으로 구성할 때는, 각 벡터에 화살표를 사용하는 것이 일반적입니다. 화살의 길이는 벡터의 크기를 나타내고,  화살표의 끝이 가리키는 방향이 벡터의 방향을 나타냅니다. 화살은 비례에 맞도록 그려야 하기 때문에 모든 벡터가 같은 비례를 가지도록 그리는 것이 중요합니다.  아래의 그림처럼 크기가 5m 인 벡터는 크기가 10m 인  벡터의 절반에 해당하는 길이를 가지게 됩니다. 

[화살 표로 표현한 두 벡터]
 
 
벡터를 화살표로 표시할 때,  화살표의 촉 부분을 끝점이라고 하고 그 반대쪽을 시작점이라고 부릅니다.
벡터는 어느 한점에 고정된것이 아니기 때문에 화살표의 길이와 방향만 같다면 어디든지 이동이 가능합니다. 아래의 그림처럼 끝점이 같은 두 벡터 A 와 B에서 벡터 B의 끝점을 벡터 A의 시작점으로 옮기는 것도 가능합니다.

[벡터 A의 끝점과 벡터 B의 시작점을 일치하록 옮긴 벡터의 그림]

 

 

  두 벡터의 시작점과 끝점을 일치하도록 만들었다면, 움직이지 않은 벡터의 시작점과 움직인 벡터의 끝점을 연결하여 새로운 벡터를 그리면 이 새 벡터가 바로 두 벡터의 합입니다.


[ 벡터 A 와  벡터 B 의 합 ]
 
이렇게 벡터의 합을 구할때  둘중 어떤 벡터를 옮기더라도 새롭게 만들어지는 합의 벡터는 언제나 같습니다.
즉 벡터의 합에는 교환법칙이 성립한다는 이야기가 되는 것이죠.

[ A + B  =  B + A ]
 
 
=============================================
|   벡터 합의 교환법칙
|   임의의 벡터 A, B 에 대하여,
|   A + B  =  B + A
=============================================
 
 위의 그림에서 각각의 벡터 A 가 5m 라고 가정하고  벡터 B가 6m 라고 가정할때 A+B 의 벡터의 길이는 어떤가요? A=5 이고 B=6 이니 A+B =11 이라고 생각하기 쉽지만 그림을 잘 보시면 새롭게 만들어진 붉은 벡터가 기존의 두개의 검은 벡터를 더한것보다 짧게 보이죠? 이 것은 벡터의 방향이 고려되었기 때운입니다.
 
결국 방향이 같지 않다면  || A+B || ≠ ||A|| + ||B||   라는 말이 됩니다.
 
그래서 극 좌표로 표현된 벡터는 같은 방향이 아닌이상 항상 데카르트 좌표로 변환하여 더해야 합니다.
두 벡터가 데카르트 좌표로 표현되었다면, 같은 성분의 벡터끼리 더하기만 하면 됩니다.
 다시말해서 두개의 i^ 와 두개의 j^를 더하는 것이죠.
 
=================================================================
두 벡터의 합 계산
두 벡터 A = a1 i^ + a2 j ^  ,    B = b1 i^ + b2 j^ 에 대하여,
A + B = ( a1 + b1 ) i^  +  (a2 + b2) j^
================================================================= 
 역시 예제를 살펴보면서 확실히 이해해 봅시다.
두 벡터 C = 8i^ + 3j^ ,   D = 5i^ + 12j^ 에 대하여, C+D를 구하세요.
 
 먼저 이 두 벡터를 그린후에 D의 시작점을 C의 끝점으로 옮깁니다. 거듭 강조하지만 벡터를 옮기는 과정에서 길이와 방향이 변하지 않도록 주의해 주세요.
 C 의 시작점과 D의 끝점을 이어서 새로운 벡터 C + D 를 그려줍니다. 그림은 아래와 같습니다.

 [ 벡터 C + D ]
 
C + D 를 계산하는 방법은  x축 방향으로의 총 이동량과  y축 방향으로의 총 이동량을 계산하는 것입니다.  즉 두개의 i^와 두개의 j^ 를 각각 성분별로 더하는 것이죠.  이 경우에는, 다음과 같이 계산할 수 있습니다.
 
C + D = (8+5) i^ + (3+12) j^  =  13 i^ + 15 j^
 
 벡터의 합을 구하는 이같은 방법은 3차원에서도 그대로 적용됩니다. 마찬가지로 3차원에서의 벡터의 합을 계산하려면 벡터는 반드시 데카르트 좌표 형식이어야 합니다.
 
=============================================================================
|  3차원 벡터의 합 계산
두 벡터 A = a1 i^ + a2 j^ + a3 k^,    B = b1 i^ + b2 j^ + b3 k^ 에 대하여,
A + B = (a1+b1) i^ + (a2+b2) j^ + (a3+b3) k^
=============================================================================
 
 지금까지 보아온 벡터의 합과 같은 방법으로 두 벡터의 차도 구할 수 있습니다. 각 성분의 합을 구한것처럼 각 성분의 차를 구하면 됩니다. 2차원과 3차원에서의 벡터의 차 공식 나갑니다!!!!!!!!]
 
=================================================================
두 벡터 사이의 차 계산
두 벡터 A = a1 i^ + a2 j ^  ,    B = b1 i^ + b2 j^ 에 대하여,
A - B = ( a1 - b1 ) i^  +  (a2 - b2) j^
================================================================= 
=============================================================================
|  3차원 벡터의 차 계산
두 벡터 A = a1 i^ + a2 j^ + a3 k^,    B = b1 i^ + b2 j^ + b3 k^ 에 대하여,
A - B = (a1-b1) i^ + (a2-b2) j^ + (a3-b3) k^
=============================================================================
 
 
 
4. 벡터의 스칼라 곱
 
 우리들은 지금까지 공부하면서 수많은 종류의 곱셈을 해왔습니다. 양수끼리의 곱셈, 음수와 양수의 곱셈, 정수와 소수와 곱셈 등등등.......  이들 곱셈은 모두 스칼라값과 스칼라값 사이의 곱셈이었습니다.  이제 위에서 배운 백터를 써먹을 때가 됬네요.  바로 벡터와 스칼라의 곱셈을 할 차례입니다!!!!
 벡터에 스칼라를 곱한다는 것은 벡터의 크기를 늘리거나 줄이는 결과를 가져옵니다. 곱하는 스칼라가 1보다 크다면 벡터는 커지고, 스칼라가 1보다 작다면 벡터의 크기는 작아집니다.
 
============================================================================
|   극좌표 형식 벡터의 스칼라 곱
|   임의의 벡터 A = c ||A|| @ θ 에 대하여,
|   cA = c ||A|| @ θ
============================================================================
 
 예제를 하나 살펴볼까요?
 벡터 A = 3ft @ 22˚ 일때 5A 를 구하세요.
 
위의 공식에 바로 대입해 볼께요.
5A = 5(3ft) @ 22˚ = 15ft @ 22˚
 
벡터가 극좌표의 형식이 아닌 데카르트좌표 형식으로 되어 있어도 극좌표로 변환하지 않고 스칼라 곱을 구할 수 있는 방법이 있습니다.  각 성분별로 스칼라를 곱하기만 하면 됩니다. 공식은 아래와 같습니다.
 
=============================================================================
데카르트 형식 벡터의 스칼라 곱
임의의 스칼라 c와 임의의 벡터 A = a1 i^ + a2 j^ 에 대하여,
|  cA = ca1 i^ + ca2 j^
=============================================================================
 
예제 고고싱~~~!!!
벡터 A = 12 i^ + 4 j^ 일때, 1/2A 를 구하세요.
 
바로 공식에 대입합니다.
1/2A = 1/2(12 i^) + 1/2(4 j^) = 6 i^ + 2 j^
 
 
 프로그래밍에서는 정규화(normalization)라는 용어를 종종 쓰이곤 합니다. 이 용어는 벡터의 크기를 1로 맞추는 것을 뜻합니다. 벡터의 정규화는 벡터의 크기보다는 벡터의 방향만을 필요로 할 때 이용됩니다. B = i^ + j^ 에서 i^는 x 축의 양의 방향을,  j^ 는 y축의 양의 방향을 가리키는 크기가 1인 벡터입니다.
 
 벡터의 정규화는 벡터가 극좌표 형식일때는 매우 간단합니다. 단지 벡터의 크기를 1로 바꾸고 방향을 변경하지 않으면 됩니다. 예를 들어 3m @ 15˚ 의 벡터가 있다면 1m @ 15˚ 가 되는 것이죠. 너무 간단하죠? ^^;
 
 그렇지만 프로그래밍에서는 데카르트좌표로 표현되는 경우가 많습니다. 이런 경우에는 벡터의 크기를 계산하여 각 성분을 크기로 나누면 됩니다.
 
==============================================================================
2차원 벡터의 정규화
임의의 벡터 A = [a1 a2] 에 대하여
A^  = ( 1 / ||A|| ) A = [ a1 / ||A||    a2 / ||A|| ]
==============================================================================
 
==============================================================================
3차원 벡터의 정규화
임의의 벡터 A = [a1  a2  a3 ] 에 대하여,
A^ = ( 1 / ||A|| ) A = [ a1 / ||A||    a2 / ||A||    a3 / ||A|| ]
============================================================================== 
** 정규화된 벡터 표시인 A^ 역시 위의 i^, j^  와 마찬가지고 기호가 문자 위에 모자처럼 씌어야하는 것임을 알려드립니다.
 
 예제를 하나 볼까용?
 벡터 A = [5  0  -12] 를 정규하 하세요.
 
 가장먼저 해야 할 일은 A의 크기를 구하는 것입니다.
 ||A|| = √ 5² + 0² + (-12)²  =  √ 25 + 0 + 144 = √ 169 = 13
 
이제 크기를 알았으니 벡터의 각 성분을 크기로 나눕니다.
A^ = [ a1 / ||A||    a2 / ||A||   a3 / ||A|| ]  =  [ 5/13  0/13  -12/13 ]
 
벡터를 정규화 한 후에 답이 맞는지 검산하려면 ||A^|| 를 구해보면 됩니다. 이 결과는 항상 1이 나와야 합니다.
 
 
 
5. 벡터의 내적
 
 두 벡터의 내적은 그 결과가 항상 스칼라 값이 나옵니다. 그래서 다른 이름으로 스칼라적 이라고 부르기도 합니다. 
 
======================================================================
2차원 벡터의 내적
임의의 2차원 벡터 A = [ a1  a2 ] ,  B = [ b1  b2 ] 에 대하여,
A●B = a1 b1 + a2 b2
======================================================================
 
========================================================================
3차원 벡터의 내적
임의의 3차원 벡터 A = [ a1  a2  a3 ],  B = [ b1  b2  b3 ] 에 대하여,
A●B = a1 b1 + a2 b2 + a3 b3
========================================================================
 
벡터의 내적은 수 많은 정보를 제공합니다. 그 중 가장 먼저 살펴볼 부분이 바로 벡터의 내적을 통해 두 벡터 사이의 각을 구할 수 있다는 것입니다. 만일 두 벡터의 내적의 값이 0이다면 두 벡터는 서로 직교한다는 것을 알 수 있습니다. 그리고 두 벡터의 내적의 값이 0 보다 작다면 두 벡터 사이의 각은 90도 보다 큰것이고 0보다 크다면 두 벡터 사이의 각은 90도 보다 작게 되는 것입니다.
 
=========================================================================
| 내적의 부호
| 두 벡터 A 와  B 사이의 각을 θ 라고 할 때,
| A●B < 0 이면 , θ > 90˚
| A●B = 0 이면 , 서로 직교
| A●B > 0 이면 , θ < 90˚
=========================================================================
 
 게임상에서 카메라의 위치가 (1,4)이고, 벡터 C = [ 5  3 ] 가 이 카메라의 방향을 나타내고 있습니다. 이 때 어떤 물체의 위치가 (7,2)이고 이 카메라의 시야가 90˚라면 이 물체는 카메라의 시야에 들어올까요?
 

[ 카메라의 시야 ]
 
먼저 위의 그림과 같이 카메라의 위치에서 물체의 위치를 가리키는 벡터를 구해야 합니다. 이 벡터를 D = [(7-1)  (2-4)] = [ 6  -2 ] 라고 합니다. 이제 벡터 C 와 벡터 D를 내적합니다.
 
 C●D = 5(6) + 3(-2) = 30 - 6 = 24
 
두 내적의 결과가 양수이므로 두 벡터 사이의 각 θ 는 90˚ 보다 작음을 알 수 있습니다. 카메라의 시야가 90˚이므로 이 물체는 카메라의 시야에 들어옴을 알 수 있습니다.
 
 간단한 계산만으로 두 벡터 사이의 각이 90˚ 에 대하여 큰지 작은지, 혹은 직교하는 지를 알 수 있었습니다. 만일 두 벡터 사이의 정확한 각을 구할 때에도 내적을 통해 알 수 있습니다.
 
===============================================================
|   두 벡터 사이의 각
|   임의의 두 벡터 A, B 사이의 각을 θ 라 하면,
|   A●B = ||A|| ||B|| cos θ
===============================================================
 
 예제를 볼께요.
 캐릭터가 벡터 C = [5  2  -3 ]가 가리키는 방향으로 이동중이었습니다. 그런데 플레이어가 새로운 목적지를 설정해 주어서 벡터 D = [8  1  -4 ]가 가리키는 방향으로 이동하게 되었습니다.  이 캐릭터는 얼마의 각을 꺽어야 새로운 경로로 이동 할 수 있을까요?
 
 위의 공식에 대입하려면 먼저 두 벡터의 내적을 구해야 합니다.
 C●D = 5(8) + 2(1) -3(-4) = 40 + 2 + 12 = 54
 
 이제 두 벡터의 크기를 각각 구해줍니다.
 ||C|| = √5² + 2² + (-3)² = √25 + 4 + 9 = √38
 ||D|| = √8² +1² + (-4)² = √64 + 1 + 16 = √81
 
이제 각각의 결과를 공식에 대입합니다.
C●D = ||C|| ||D|| cos θ
54 = (√38)(√81) cos θ
54 / (√38)(√81) = cos θ
54 / ( 6.16 * 9 ) = 54 / 55.44 = cos θ
θ = 13.08˚  <---근사값입니다.
 
따라서 이 캐릭터는 13.08˚ 꺽어서 움직이면 됩니다.
 
 
 
6. 벡터의 외적
 
 내적은 벡터를 곱하는 방법에 해당합니다. 이번에는 외적을 다뤄볼 차례 입니다.  내적과 외적의 가장 큰 차이점이라면 결과값의 형태이겠네요.  내적은 결과값이 스칼라이고 외적의 결과는 벡터입니다.
 
============================================================
외 적
임의의 두 벡터 A = [a1 a2 a3],  B = [b1 b2 b3]에 대하여,
A x B = [(a2b3 - a3b2) (a3b1 - a1b3) (a1b2 - a2b1)]
============================================================
 
예제를 하나 볼께요
 두 벡터 A = [ 5  -6  0 ],  B = [1  2  3 ]의 외적을 구하세요.
 
외적의 결과는 또 다른 벡터가 나오므로, 위의 공식을 사용하여 각 성분을 계산하면 됩니다.
A x B = [(a2b3 - a3b2)  (a3b1 - a1b3)  (a1b2 - a2b1)]
         = [(-6(3) - 0(2))   (0(1) - 5(3))   (5(2) - -6(1)) ]
         = [ (-18-0)  (0-15)  (10+6) ]
         = [-18  -15  16 ]
 
 
외적의 가장 중요한 성질은 바로 외적의 결과로 만들어진 벡터가 원래 두 벡터와 모두 직교하는 벡터라는 것입니다. 이러한 이유 때문에 외적은 3차원 벡터에 대해서만 정의 됩니다.
 
================================================================
직교 벡터
A x B 는 두 벡터  A, B 에 모두 수직
================================================================

[ 직교 벡터 ]
 
벡터 A 와 B 를 포함하는 평면에는 수직인 두개의 방향이 있습니다. 바로 위쪽과 아래쪽이죠. 외적의 결과 주어지는 벡터를 결정하는데 오른손 법칙을 쓸 수 있습니다. 손가락을 벡터 A와 B가 교차하는 부분에 두고 손가락을 벡터 A와 같은 방향으로 둡니다.  그런 후에 손가락이 벡터 B를 향하도록 구부리면,  이때 엄지가 향하는 방향이 AxB 의 방향입니다. 반대로 A와 B의 순서를 바꾸어 시도해보면 BxA는 방향이 정반대라는 것을 알 수 있습니다. 그래서 외적은 교환법칙이 성립하지 않습니다.
 
=====================================================================
외적은 교환법칙이 성립하지 않음
A x B ≠ B x A
단, 임의의 3차원 벡터 A , B에 대해서 A x B = -(B x A)
=====================================================================
 
 외적은 결과가 원래의 두 벡터와 수직인 세번째 벡터를 만든다는 독특한 성질 덕뿐에 표면 법선(surface normal)을 계산하는데 사용할 수 있습니다. 임의의 두 3차원 벡터는 하나의 면을 정의합니다. 표면 법선은 주어진 면에 수직인 길이가 1인 벡터를 말합니다.
 
============================================================
표면 법선
임의의 두 3차원 벡터 A, B에 대하여,
표면 법선 = (A x^ B) = AxB / ||AxB||
=============================================================
**위의 공식에서 x^ 또한 위의 벡터의 부호처럼 ^ 이 x 위에 모자처럼 씌어져야 합니다
 
역시 예제를 살펴보면 실력을 다져 볼까요?
두 벡터 A = [5  -2  0 ], B = [1  2  3 ]으로 정의되는 면이 있을때, 이 면과 충돌한 물체의 운동을 결정하는데 사용할 수 있도록 표면 법선을 구하십시오.
 
외적의 결과는 주어진 두 벡터와 직교하는 새로운 벡터이죠? 먼저 외적을 합니다.
A x B = [ (a2b3 - a3b2)  (a3b1 - a1b3)  (a1b2 - a2b1) ]
          = [ (-2(3) - 0(2))   (0(1) - 5(3))   (5(2) - -2(1)) ]
          = [ (-6 - 0)   (0 - 15)   (10 + 2) ]
          = [ -6  -15  12 ]
 
외적을 구했으니 이제 외적의 크기를 구합니다.
||A x B|| = √(-6)² + (-15)² + (12)²
             = √36 + 225 + 144
             = √405
             = 20.125 
 
이제 공식에 대입하면 됩니다.
[ -6/20.125   -15/20.125   12/20.125 ] = [0.298   0.745   0.596 ]
 
 
이미 위에서 두 벡터 사이의 각을 내적을 사용하여 구하는 법을 배웠습니다. 각을 구하는 데에는 내적이 더 빠릅니다만 이미 외적의 값을 알고 있다면 외적을 사용하여 각을 구하는 법을 사용하는것이 좋습니다.
 
=========================================================================
|   두 벡터 사이의 각(외적)
|   임의의 두 3차원 벡터 A, B에 대하여
|   ||AxB|| = ||A|| ||B|| sin θ
=========================================================================
 
자 예제 나갑니다. 단 이번에는 풀이가 없고 답만 알려드릴께요. 한번 직접 풀어보시고 답이랑 맞는지 맞춰보세요 ㅋㅋㅋ
 
<문제> 두 벡터 A = [5  -2  0],  B = [1  2  3] 사이의 각을 구하세요.
<답> 약 87.2˚ 

'모과이 > 수학공부' 카테고리의 다른 글

벡터의 내적  (0) 2013.11.30
Posted by 모과이IT
,