向量的点积和模长
866字,阅读需时3分钟

向量的点积是两个向量间每个对应分量乘积的和,向量点积的结果是一个标量。向量的点积记为:a ● b,其中a和b是任意n维向量。

假设有下面两个向量a和b,求a ● b。

 image.png                       

向量a有a1、a2、……、an个分量,向量b有b1、b2、……、bn个分量,a ● b的结果是:

image.png

a ● b = a1*b1 + a2 * b2 + …… + an * bn

举一个实际的例子,设有下面两个二维向量e和f,求e ●  f。

e ●  f = 2 * 3 + (-1)*5 = 1

进一步考虑,向量自身的点积是什么呢?假设有下面二维向量a。

image.png

向量a自身的点积为:

image.png

如果我们把向量a看作是二维坐标系中的向量,则向量a的两个分量就是二维坐标系中的坐标点,分量a1是x坐标,分量a2是y坐标。二维坐标系中向量a如下图所示:

image.png

从上图可以看出,根据勾股定理得向量a长度的平方等于a1的平方加上a2的平方,由此得出:

向量自身的点积是向量自身长度的平方

向量长度也记为向量的模长,向量的模长等于向量自身点积的二次方根,即:

image.png

其中||a||表示向量a的模长,向量a的模长也可以记为:

image.png

假设有下面向量c,求向量c的模长。

image.png

向量c的模长为:

image.png

前面讨论的是二维向量的模长,二维向量模长的计算同样适用于多维向量模长的计算。假设有下面n维向量b。

image.png

n维向量b的模长为:

下面我们使用Numpy实现向量的点积与模长计算。

import numpy as np
#创建向量a
a =  np.array([2,-1])
#创建向量b
b =  np.array([3,5])
if __name__ == '__main__':
    #输出a与b的点积
    print(np.dot(a,b))
    #输出a的模长,对a自身的点积做开方运算
    print(np.sqrt(np.dot(a,a)))
我要评论
全部评论
郎宏林
授课老师
授课老师简介
项目经理,系统分析和架构师,从事多年中文信息处理技术。熟悉项目管理、擅长项目需求分析和设计、精通Java、C#、Python等编程语言。
下载APP

手机、电脑同步学

用微信或手机浏览器扫描二维码,即可下载APP。

  • 备案号:鲁ICP备15001146号
  • @1997-2018 潍坊米粒花网络技术有限公司版权所有