수학/선형대수학

내적, 점곱이란 / 파이썬 내적 구현

빛날희- 2021. 2. 28. 20:12

▶내적이란?

 

한 벡터가 다른 벡터에 대해 가한 힘에 의해 변화된 스칼라 값을 얻는 곱이라고 할 수 있다. 즉 내적은 한 벡터 w가 벡터 v의 방향에 대해 어느정도의 힘을 가했는지를 알 수 있도록 해준다. 

위의 그림에서 내적을 통해 우리는 w가 v벡터에 어느정도의 힘을 가했는지 알 수 있을 것이다. 내적 공식은 다음과 같다. 

 

v의 norm(크기) * w의 norm(크기) * cosθ 로 내적 스칼라를 구할 수 있다. 

 


아래의 예시를 보자. 

 

 

 

 

(1) 의 경우는 w와 v벡터의 방향이 같은 경우다. 이때 w가 v의 방향에 힘을 가함으로써 변화된 스칼라는 3이라고 볼 수 있다. 

 

(2) 는 w와 v의 방향이 다른 경우이다. w가 v의 방향에 가한 스칼라를 구하기 위해 v와 같은 방향인 벡터 a를 구해보자. a의 norm은 w의 norm에 cos30을 곱한 값으로 3/2가 된다. 

v와 w의 내적은 ||v||||w||cosθ인데, ||w||cosθ는 a의norm을구할때

쓰인 공식이다. 즉 ||w||cosθ 부분은 v와 방향이 같은 벡터의 norm을 구하기 위한 공식이라고 볼 수 있다. 그렇게 구한 ||a||에 ||v||를 곱하면 내적값을 구할 수 있다. 

그러므로 w벡터는 v의 방향에 힘을 가함으로써 변화된 스칼라 값은 9/2라고 말할 수 있다. 

 

 

 

 

 

 

 


 

▶ 내적 증명

내적 공식에 따르면 v와 w 벡터의 내적은 v와 w의 각 구성요소들의 곱의 합과 같다는 것을 알 수 있다. 이는 제2 코사인법칙에 의해 다음과 같이 증명할 수 있다.

 

따라서 우리는 v와 w벡터의 내적을 구하기 위해 번거롭게 코사인과 norm을 구할 필요없이, 각 성분을 서로 곱한 후 더하여 손쉽게 구할 수 있다. 

 

 

▶ 파이썬 내적 구현

 

파이썬에선 numpy패키지의 np.dot(v1, v2)를 통해 내적을 구현할 수 있다. 다음 예시를 보자. 

 

위와 같이 선언된 배열의 내적이 np.dot을 통해 손쉽게 연산되는 것을 볼 수 있다. np.dot이외에도 다음과 같이 다른 방법을 통해 내적을 구현하는 것이 가능하다.