📅  最后修改于: 2023-12-03 15:07:29.671000             🧑  作者: Mango
在数学中,向量的乘积指的是两个向量之间的乘法运算,其计算方法有多种,包括点积、叉积等。
两个向量的点积是指这两个向量对应元素的乘积之和,通常用符号 $\cdot$ 表示。设两个 n 维向量为 $\mathbf{a}=[a_1,a_2,...,a_n]$ 和 $\mathbf{b}=[b_1,b_2,...,b_n]$,则向量的点积可表示为:
$$\mathbf{a}\cdot \mathbf{b}=\sum_{i=1}^{n}a_i b_i$$
点积可以用来计算向量之间的夹角余弦值:
$$\cos\theta = \frac{\mathbf{a}\cdot \mathbf{b}}{\left\Vert \mathbf{a} \right\Vert \left\Vert \mathbf{b} \right\Vert}$$
Python 代码实现:
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
dot_product = np.dot(a, b) # 计算点积
cos_sim = dot_product / (np.linalg.norm(a) * np.linalg.norm(b)) # 计算余弦值
print('向量 a 和向量 b 的点积为:', dot_product)
print('向量 a 和向量 b 夹角的余弦值为:', cos_sim)
输出结果:
向量 a 和向量 b 的点积为: 32
向量 a 和向量 b 夹角的余弦值为: 0.9746318461970762
两个向量的叉积是指与这两个向量垂直的向量的长度,方向遵循右手定则。设两个三维向量为 $\mathbf{a}=[a_1,a_2,a_3]$ 和 $\mathbf{b}=[b_1,b_2,b_3]$,则向量的叉积可表示为:
$$\mathbf{a}\times \mathbf{b}=\begin{bmatrix}a_2b_3 - a_3b_2\a_3b_1 - a_1b_3\a_1b_2 - a_2b_1\end{bmatrix}$$
Python 代码实现:
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
cross_product = np.cross(a, b) # 计算叉积
print('向量 a 和向量 b 的叉积为:', cross_product)
输出结果:
向量 a 和向量 b 的叉积为: [-3 6 -3]
外积:矩阵的外积是将矩阵 A 的每一行乘以矩阵 B 的每一列得到的新矩阵。可以使用 NumPy 的 dot 函数实现:
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
outer_product = np.dot(a.reshape(-1), b.reshape(-1)) # 计算外积
print('矩阵 a 和矩阵 b 的外积为:', outer_product)
输出结果:
矩阵 a 和矩阵 b 的外积为: 70
混合积:三个向量的混合积可以用来计算一个平行六面体的有向体积,其计算方法为:
$$(\mathbf{a}\times \mathbf{b})\cdot \mathbf{c}$$
Python 代码实现:
a = np.array([1, 0, 0])
b = np.array([0, 1, 0])
c = np.array([0, 0, 1])
mixed_product = np.dot(np.cross(a, b), c) # 计算混合积
print('向量 a、向量 b 和向量 c 的混合积为:', mixed_product)
输出结果:
向量 a、向量 b 和向量 c 的混合积为: 1
以上就是向量的乘积的介绍及 Python 代码实现。