📜  向量的乘积(1)

📅  最后修改于: 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 代码实现。