1. 基本概念
设两向量
a
=(x1,y1,z1) b
=(x2,y2,z2),夹角为
θ
(1)数量积
numpy中 使用np.dot
数量积又称内积(Kronecker product)、点积(Dot product),对应元素相乘相加,结果是一个标量(即一个数)。
a
⋅b
=x1x2+y1y2+z1z2有时也写成
a⊗b
几何意义是
a
在
b
上的投影:
a
⋅b
=∣a
∣∗∣∣∣b
∣∣∣∗cosθ
对于矩阵,假设
A为
m×s阶矩阵,
B为
s×n阶矩阵(A的列数与B的行数相等),那么
C=AB(有时写成)是
m×n阶矩阵,且矩阵
C中的元素满足
cij=k=1∑saikbkj
A=⎣⎢⎢⎢⎡a11a21⋯am1a12a22⋯am2⋯⋯⋱⋯a1sa2s⋮ams⎦⎥⎥⎥⎤ B=⎣⎢⎢⎢⎡b11b21⋯bs1b12b22⋯bs2⋯⋯⋱⋯b1nb2n⋮bsn⎦⎥⎥⎥⎤ C=AB=⎣⎢⎢⎢⎡c11c21⋯cm1c12c22⋯cm2⋯⋯⋱⋯c1nc2n⋮cmn⎦⎥⎥⎥⎤
(2)向量积
numpy中 使用np.cross
向量积又称外积、叉积(Cross product),结果
a
和
b
的法向量,该向量垂直于
a
和
b
构成的平面。
a
×b
=∣∣∣∣∣∣ix1x2jy1y2kz1z2∣∣∣∣∣∣=(y1z2−y2z1)i
−(x1z2−x2z1)j
+(x1y2−x2y1)k
∣a
×b
∣=∣a
∣∗∣∣∣b
∣∣∣∗sinθ
(3)普通乘积
numpy中 使用np.multiply
或*
普通乘积:对应元素相乘,结果还是向量。
a
∗b
={x1x2,y1y2,z1z2}
有时写成
A⊙B
2. 举例
X1=[1324]Y1=[5768],X2=[112233]Y2=⎣⎡123⎦⎤
(1)数量积:
X1Y1=[19432250],X2Y2=[1414]
(2)向量积:
X1×Y1=[−4−4],X2×Y2=[000000]
(3)普通乘积:
X1∗Y1=[5211232],X2∗Y2=[114499]
3. Numpy实现
import numpy as np
X1 = np.array([[1,2],[3,4]])
Y1 = np.array([[5,6],[7,8]])
X2 = np.array([[1,2,3],[1,2,3]])
Y2 = np.array([1,2,3])
print(np.dot(X1,Y1))
print(np.dot(X2,Y2))
print(np.cross(X1,Y1))
print(np.cross(X2,Y2))
print(np.multiply(X1,Y1))
print(np.multiply(X2,Y2))