向量的点乘和叉乘是向量代数中的基本运算,在物理学、工程学和计算机图形学中有广泛的应用。下面我们分别讲解它们的定义、性质,并结合矩阵运算进行说明。
一、向量的点乘(内积)
定义:
对于两个n维实向量 a = [ a 1 , a 2 , . . . , a n ] \mathbf{a} = [a_1, a_2, ..., a_n] a=[a1,a2,...,an] 和 b = [ b 1 , b 2 , . . . , b n ] \mathbf{b} = [b_1, b_2, ..., b_n] b=[b1,b2,...,bn],它们的点乘(也称为内积)定义为:
a ⋅ b = ∑ i = 1 n a i b i \mathbf{a} \cdot \mathbf{b} = \sum_{i=1}^{n} a_i b_i a⋅b=i=1∑naibi
几何意义:
点乘可以用于计算两个向量之间的夹角,以及投影的长度。具体来说,点乘等于两个向量的长度与它们夹角的余弦的乘积:
a ⋅ b = ∥ a ∥ ∥ b ∥ cos θ \mathbf{a} \cdot \mathbf{b} = \|\mathbf{a}\| \|\mathbf{b}\| \cos\theta a⋅b=∥a∥∥b∥cosθ
其中 θ \theta θ 是向量 a \mathbf{a} a 和 b \mathbf{b} b 之间的夹角。
性质:
- 交换律: a ⋅ b = b ⋅ a \mathbf{a} \cdot \mathbf{b} = \mathbf{b} \cdot \mathbf{a} a⋅b=b⋅a
- 线性性:对任意标量 k k k, a ⋅ ( k b ) = k ( a ⋅ b ) \mathbf{a} \cdot (k\mathbf{b}) = k(\mathbf{a} \cdot \mathbf{b}) a⋅(kb)=k(a⋅b)
- 分配律: a ⋅ ( b + c ) = a ⋅ b + a ⋅ c \mathbf{a} \cdot (\mathbf{b} + \mathbf{c}) = \mathbf{a} \cdot \mathbf{b} + \mathbf{a} \cdot \mathbf{c} a⋅(b+c)=a⋅b+a⋅c
与矩阵运算的关系:
点乘可以视为矩阵乘法的特殊情况。将向量视为列向量或行向量,有:
- 行向量与列向量相乘:
a ⋅ b = [ a 1 a 2 ⋯ a n ] [ b 1 b 2 ⋮ b n ] \mathbf{a} \cdot \mathbf{b} = \begin{bmatrix} a_1 & a_2 & \cdots & a_n \end{bmatrix} \begin{bmatrix} b_1 \\ b_2 \\ \vdots \\ b_n \end{bmatrix} a⋅b=[a1a2⋯an] b1b2⋮bn
- 矩阵形式:
a T b = a ⋅ b \mathbf{a}^\mathrm{T} \mathbf{b} = \mathbf{a} \cdot \mathbf{b} aTb=a⋅b
其中 a T \mathbf{a}^\mathrm{T} aT 表示向量 a \mathbf{a} a 的转置。
二、向量的叉乘(外积)
定义:
叉乘仅在三维空间中定义,对于 a = [ a 1 , a 2 , a 3 ] \mathbf{a} = [a_1, a_2, a_3] a=[a1,a2,a3] 和 b = [ b 1 , b 2 , b 3 ] \mathbf{b} = [b_1, b_2, b_3] b=[b1,b2,b3],它们的叉乘是一个新的向量:
a × b = [ a 2 b 3 − a 3 b 2 a 3 b 1 − a 1 b 3 a 1 b 2 − a 2 b 1 ] \mathbf{a} \times \mathbf{b} = \begin{bmatrix} a_2 b_3 - a_3 b_2 \\ a_3 b_1 - a_1 b_3 \\ a_1 b_2 - a_2 b_1 \end{bmatrix} a×b= a2b3−a3b2a3b1−a1b3a1b2−a2b1
几何意义:
叉乘结果向量垂直于原来的两个向量,且其方向由右手定则确定。叉乘的长度等于两个向量所张成的平行四边形的面积:
∥ a × b ∥ = ∥ a ∥ ∥ b ∥ sin θ \|\mathbf{a} \times \mathbf{b}\| = \|\mathbf{a}\| \|\mathbf{b}\| \sin\theta ∥a×b∥=∥a∥∥b∥sinθ
性质:
- 反交换律: a × b = − ( b × a ) \mathbf{a} \times \mathbf{b} = -(\mathbf{b} \times \mathbf{a}) a×b=−(b×a)
- 分配律: a × ( b + c ) = a × b + a × c \mathbf{a} \times (\mathbf{b} + \mathbf{c}) = \mathbf{a} \times \mathbf{b} + \mathbf{a} \times \mathbf{c} a×(b+c)=a×b+a×c
- 与标量的关系:对于标量 k k k, k ( a × b ) = ( k a ) × b = a × ( k b ) k(\mathbf{a} \times \mathbf{b}) = (k\mathbf{a}) \times \mathbf{b} = \mathbf{a} \times (k\mathbf{b}) k(a×b)=(ka)×b=a×(kb)
与矩阵运算的关系:
叉乘可以用反对称矩阵表示:
- 利用反对称矩阵:
对于向量 a = [ a 1 , a 2 , a 3 ] \mathbf{a} = [a_1, a_2, a_3] a=[a1,a2,a3],定义对应的反对称矩阵 [ a ] × [\mathbf{a}]_\times [a]×:
[ a ] × = [ 0 − a 3 a 2 a 3 0 − a 1 − a 2 a 1 0 ] [\mathbf{a}]_\times = \begin{bmatrix} 0 & -a_3 & a_2 \\ a_3 & 0 & -a_1 \\ -a_2 & a_1 & 0 \end{bmatrix} [a]×= 0a3−a2−a30a1a2−a10
则有:
a × b = [ a ] × b \mathbf{a} \times \mathbf{b} = [\mathbf{a}]_\times \mathbf{b} a×b=[a]×b
- 矩阵形式的叉乘:
叉乘可以表示为矩阵乘法,这在刚体动力学和旋转变换中非常有用。
三、综合运用
1. 点乘与矩阵的关系
在机器学习和数据分析中,经常需要计算大量的点乘运算,可以利用矩阵乘法的高效算法。例如,给定矩阵 A ∈ R m × n \mathbf{A} \in \mathbb{R}^{m \times n} A∈Rm×n 和向量 x ∈ R n \mathbf{x} \in \mathbb{R}^n x∈Rn,则矩阵与向量的乘积 A x \mathbf{A}\mathbf{x} Ax 的第 i i i 个元素就是 A \mathbf{A} A 的第 i i i 行与向量 x \mathbf{x} x 的点乘:
( A x ) i = A i , : ⋅ x (\mathbf{A}\mathbf{x})_i = \mathbf{A}_{i,:} \cdot \mathbf{x} (Ax)i=Ai,:⋅x
2. 叉乘与矩阵的关系
在计算机图形学中,旋转操作可以用四元数或旋转矩阵表示,其中就涉及到叉乘的矩阵形式。例如, Rodrigues 旋转公式使用了叉乘的反对称矩阵形式。
3. 混合积
点乘和叉乘可以结合起来定义三重积(混合积):
a ⋅ ( b × c ) = det [ a 1 a 2 a 3 b 1 b 2 b 3 c 1 c 2 c 3 ] \mathbf{a} \cdot (\mathbf{b} \times \mathbf{c}) = \det \begin{bmatrix} a_1 & a_2 & a_3 \\ b_1 & b_2 & b_3 \\ c_1 & c_2 & c_3 \end{bmatrix} a⋅(b×c)=det a1b1c1a2b2c2a3b3c3
它的几何意义是由三个向量构成的平行六面体的体积。
四、结论
向量的点乘和叉乘是基本的代数运算,点乘与矩阵乘法直接相关,而叉乘可以用反对称矩阵表示,从而与矩阵运算建立联系。理解它们之间的关系,有助于在工程计算、物理模拟和计算机图形学中灵活运用矩阵方法解决复杂问题。