연재 완료/프로그래밍용 수학 공부

11. 벡터(2) - 내적

라이피 (Lypi) 2018. 11. 27. 04:15
반응형

내적과 외적

  # 내적과 외적은 벡터끼리의 곱셈이라고 볼 수 있다.

  # 하지만 내적이나 외적이나 역원을 정의할 수 없기 때문에 벡터끼리의 나눗셈은 정의되어 있지 않다.

    + 추가 : 나눗셈을 정의할 수 없는 건 우리가 지금 좌표계 기반 벡터를 다루고 있기 때문이다.


벡터의 연산(2) : 내적 혹은 스칼라곱

  # 원래 내적은 두 벡터 사이에 점을 찍는데 마땅한게 없으므로 ●을 내적을 나타내는 기호로 사용했다.


  # 벡터의 내적은 결과가 스칼라값으로 나온다. 그래서 내적을 스칼라곱이라고도 한다.

  # 그러므로 <a><b><c>와 같이 연속해서 내적하는 것은 불가능하다.


  # 내적은 두 벡터의 크기를 서로 곱하는 것이다.

  

  # 이를 이해하기위해 벡터가 아니라 두개의 1차원의 스칼라 값의 곱을 생각해보자. (결국 그냥 한개의 숫자다.)

  # 1차원의 값이므로 두 값은 같은 선상에 있을 것이다. 이 두 값을 곱하는 것을 이미지로 표현하면 아래와 같다.



  # 같은 선상에 있으므로 값 하나를 수직으로 세워서 사각형을 만들어 그 넓이를 구하면 곱셈이 된다. 이를 방향이 같은 벡터에 적용해보면 아래와 같다.

  

 

 # 똑같이 할 수 있다. 이제 문제는 두 벡터의 방향이 다를때 어찌 할 것인가이다. 아래와 같이 하면 된다.








  # 두 벡터 중 하나를 다른 벡터와 평행한 성분과 수직인 성분으로 분해할 수 있고, 평행한 성분인 ⓑ'의 값은 ⓑ*cosX와 같다. (X는 두벡터의 사이각) 

 

  # 만약 두 벡터가 수직이라면 cos90º는 0이므로 결과는 0이 나온다. 이는 평행한 성분이 0이라 그렇다고 생각할 수 있다.   

  # 이를 삼각형 하나로 나타내면 옆의 그림과 같다. 두 벡터 중 어느 벡터를 분해해도 결과가 같다. 이는 내적은 교환법칙이 성립함을 의미한다.

  # 이를 정리해서 벡터의 내적을 정의하면, 내적은 <a>와 <b>가 이루는 각이 x일 때, <a>●<b>=|<a>|*|<b>|*cosX로 정의할 수 있다.

 

  # 아래와 같이 두 벡터를 모두 분해해서 곱하는 걸로도 내적을 계산할 수 있다. 


  # 그러므로 2차원이면 <a><b> = a.x*b.x + a.y*b.y, 3차원이면 <a><b> = a.x*b*x + a.y*b.y + a.z*b.z라는 식이 성립한다.


  

  # 위의 내용은 내적을 최대한 쉽게 풀어본 것이고, 일반적인 유도는 다음과 같다.

 




       |<a>-<b>|= |<a>|+ |<b>|2 - 2|<a>|*|<b>|*cosθ ∵ 코사인제2법칙에 의함.

       2|<a>|*|<b>|*cosθ = |<a>|+ |<b>|- |<a>-<b>|2 

       2|<a>|*|<b>|*cosθ = (a.x-b.x)2 + (a.y-by)2 - ((a.x)2 + (a.y)2) - ((b.x)2 + (b.y)2)

       2|<a>|*|<b>|*cosθ = 2*a.x*b.x - 2*a.y*b.y

       ∴ |<a>|*|<b>|*cosθ = a.x*b.x - a.y*b.y








내적의 성질

  1) <a>●<b> = <b>●<a>  - 내적에 대한교환 법칙 성립

  2) (k는 실수) (k*<a>)●<b> = <a>●(k*<b>) = k*(<a>●<b>) - 실수배는 자유롭게 이동 가능. 주의! 마지막에 분배되는 것이 아니다!

  3) (복부호동순) <a>●(<b>±<c>) = (<a>●<b>)±(<a>●<c>) - 벡터의 합차에 대해 분배법칙 성립 


  1)의 증명은 위의 그림으로 대체.

  2)의 증명 : (k*<a>)●<b> = (k*a.x)*b.x + (k*a.y)*b.y , <a>●(k*<b>) = a.x*(k*b.x) + a.y*(k*b.y), k*(<a>●<b>) = k*(a.x*b*x + a.y*b.y) //∴ 같다.

  3)의 증명 :  <a>●(<b>+<c>) = a.x*(b.x+c.x) + a.y*(b.y+c.y), (<a>●<b>)+(<a>●<c>) = a.x*b.x+a.x*c.x + a.y*b.y+a.y*c.y // ∴ 같다.



내적의 활용


  1) 두 벡터가 직교하는지 확인 :

     <a>●<b>=0이면 <A>⊥<B>

 

  2) 두 벡터의 사이각 구하기 :

     |<a>|*|<b>|*cosX = a.x*b.x + a.y*b.y = <a>●<b>

     ∴ cosX = (<a>●<b>/ |<a>|*|<b>|).

      각X = acos( <a>●<b>/ |<a>|*|<b>|)


  3) 어떤 물체가 다른 물체 앞에 있는지 뒤에 있는지 확인하기. 

     물체에 설정된 정규벡터를 <a>,<b>일 때

     <a>와 <b>사이의 각을 θ라 하면

     <a>●<b><0 이면 θ>90º (둔각, 물체 뒤에 있음), <a>●<b>>0 이면 θ<90º (예각, 물체 앞에 있음)


 



빨간색 벡터는 A의 앞에 있는 점들과의 벡터. 

파란색 벡터는 A의 뒤에 있는 점들과의 벡터. 

초록색 벡터는 A의 노멀벡터와 직교하는 위치에 있는 점과의 벡터를 의미한다.










  4) 두 벡터 중 한 벡터에서 다른 벡터와 평행한 성분 구하기. (벡터의 투영)

  두 벡터를 내적하면 |<a>|*|<b>|*cosX

  <a>벡터에서 <b>벡터와 평행한 성분의 길이는 <a>●<b>/|<B>|

     


  5) 직선과 한 점과의 거리 구하기.

  이는 위의 그림에 나오는 수선의 발의 길이를 구하는 것과 같다. <a>●(<a>●<b>/|<B>|)

반응형