向量之间可以做加法、减法、乘法运算,向量还可以对数字做加法、减法、数乘、数除。学会怎么计算是比较容易的,关键是要弄懂计算背后的几何意义,特别是在空间中向量做了些什么变化。
先来看向量之间的加法。
向量之间要能做加法,则两个向量的维数要相同。想想看,一个处在二维空间中的向量自然不能与一个处于三维空间中的向量来做加法。如果同处在相同维数的空间里,也就可以做加法了。后面还要讲解的减法、乘法都是如此。
向量的加法就是将向量对应维度的值相加。假定 ,
,则向量的加法运算如下:
一起来看个例子。
,
,则:
当然,如果要写成纵向的也是可以的:
在图形上,向量相加的结果是一个什么样的向量呢?以上述例子的运算结果来做图,如图5-1所示。从图形可以明显的看出,相加后的结果是以向量a和向量b 为边的平行四边形的对角线。
图5-1 向量的加法
通过这个计算,也可以看出,向量的加法计算结果也处在同一个空间之中,因此三个向量才能在同一个空间中表达出来。
用Python做向量的加法并做图的程序代码如下(这部分如果没有学习过Python程序的童鞋,不看也没事,不影响阅读我的连载):
#==============代码段5-1==============
import matplotlib.pyplot as plt
import numpy as np
import mpl_toolkits.axisartist as axisartist
#====此处省去创建画布的代码(与代码段3-1的第一部分相同)=====
#====做向量的加法====
a=np.array([1,2])
b=np.array([3,2])
c=a+b
#====画出向量a====
plt.plot([0,a[0]],[0,a[1]],alpha=0.5,color='blue',linestyle='-')
plt.arrow(0.96,1.92,0.025,0.05,head_width=0.2,\
head_length=0.05, shape="full",fc='blue',ec='blue',alpha=0.9, overhang=0.5)
plt.text(0.3,2.0,'a=[1,2]',size = 15)
#====画出向量b====
plt.plot([0,b[0]],[0,b[1]],alpha=0.5,color='red',linestyle='-')
plt.arrow(2.96,1.973333,0.025,0.0166667,head_width=0.2,\
head_length=0.05, shape="full",fc='red',ec='red',alpha=0.9, overhang=0.5)
plt.text(3.05,2.0,'b=[3,2]',size = 15)
#====画出向量c====
plt.plot([0,c[0]],[0,c[1]],alpha=0.5,color='green',linestyle='-')
plt.arrow(3.96,3.96,0.025,0.025,head_width=0.2,\
head_length=0.05, shape="full",fc='green',ec='green',alpha=0.9, overhang=0.5)
plt.text(4.05,4.0,'a+b=[4,4]',size = 15)
#====画出平行四边行的2条虚线====
plt.plot([a[0],c[0]],[a[1],c[1]],color='purple',linestyle='--')
plt.plot([b[0],c[0]],[b[1],c[1]],color='purple',linestyle='--')
#====此处省去与代码段3-1的第四部分相同的代码=====
Python中,两个向量之间可以直接做加法。向量用一维数组来表示。
下回我们再来讲解向量之间的减法。