向量的内积也叫向量的数量积、点积。向量数量积的几何意义: 一个向量在另一个向量上的投影。
矢量内积是人工智能领域中的神经网络技术的数学基础之一, 此方法还被用于动画渲染。
向量夹角大小判别
其计算结果等于u 的模长(大小)、 v 的模长(大小)、 u,v 夹角的余弦。在 u,v 非零的前提下, 点积如果为负, 则 u,v 形成 的角大于 90 度; 如果为零, 那么 u,v 垂直; 如果为正, 那么 u,v 形成的角为锐角。
向量间的相似性
两个单位向量的点积得到两个向量的夹角的 cos 值, 通过它可以知道两个向量的相似 性, 利用点积可判断一个多边形是面向摄像机还是背向摄像机。
实现向量vect1和vect2的内积
import numpy as np
vect1 = np.array([1,2,3])
vect2 = np.array([2,3,4])
dotx = np.dot(vect1,vect2)
print("dotx: {}".format(dotx))
结果
dotx: 20
v 1 = ( 1 , 0 , 0 ) v1=(1,0,0) v1=(1,0,0)
v 2 = ( 0 , 1 , 0 ) v2=(0,1,0) v2=(0,1,0)
θ = a r c c o s ( ( v 1 ∗ v 2 ) / ( ∣ v 1 ∣ ∗ ∣ v 2 ∣ ) \theta=arccos((v1*v2)/(|v1|*|v2|) θ=arccos((v1∗v2)/(∣v1∣∗∣v2∣))
import numpy
v3 = np.array([1,0,0])
v4 = np.array([0,1,0])
dotx = np.dot(vect1,vect2)
dot2 = np.dot(v3,v4)
theta = np.arccos(dot2/(np.linalg.norm(v3)*np.linalg.norm(v4)))*180/np.pi
print("theta: {}".format(theta))