数学基础-向量投影

embedded/2024/12/22 1:16:29/

向量的点乘和叉乘是向量代数中的基本运算,在物理学、工程学和计算机图形学中有广泛的应用。下面我们分别讲解它们的定义、性质,并结合矩阵运算进行说明。

一、向量的点乘(内积)

定义:

对于两个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 ab=i=1naibi

几何意义:

点乘可以用于计算两个向量之间的夹角,以及投影的长度。具体来说,点乘等于两个向量的长度与它们夹角的余弦的乘积:

a ⋅ b = ∥ a ∥ ∥ b ∥ cos ⁡ θ \mathbf{a} \cdot \mathbf{b} = \|\mathbf{a}\| \|\mathbf{b}\| \cos\theta ab=a∥∥bcosθ

其中 θ \theta θ 是向量 a \mathbf{a} a b \mathbf{b} b 之间的夹角。

性质:

  1. 交换律 a ⋅ b = b ⋅ a \mathbf{a} \cdot \mathbf{b} = \mathbf{b} \cdot \mathbf{a} ab=ba
  2. 线性性:对任意标量 k k k a ⋅ ( k b ) = k ( a ⋅ b ) \mathbf{a} \cdot (k\mathbf{b}) = k(\mathbf{a} \cdot \mathbf{b}) a(kb)=k(ab)
  3. 分配律 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)=ab+ac

与矩阵运算的关系:

点乘可以视为矩阵乘法的特殊情况。将向量视为列向量或行向量,有:

  • 行向量与列向量相乘

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} ab=[a1a2an] b1b2bn

  • 矩阵形式

a T b = a ⋅ b \mathbf{a}^\mathrm{T} \mathbf{b} = \mathbf{a} \cdot \mathbf{b} aTb=ab

其中 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= a2b3a3b2a3b1a1b3a1b2a2b1

几何意义:

叉乘结果向量垂直于原来的两个向量,且其方向由右手定则确定。叉乘的长度等于两个向量所张成的平行四边形的面积:

∥ a × b ∥ = ∥ a ∥ ∥ b ∥ sin ⁡ θ \|\mathbf{a} \times \mathbf{b}\| = \|\mathbf{a}\| \|\mathbf{b}\| \sin\theta a×b=a∥∥bsinθ

性质:

  1. 反交换律 a × b = − ( b × a ) \mathbf{a} \times \mathbf{b} = -(\mathbf{b} \times \mathbf{a}) a×b=(b×a)
  2. 分配律 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
  3. 与标量的关系:对于标量 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]×= 0a3a2a30a1a2a10

则有:

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} ARm×n 和向量 x ∈ R n \mathbf{x} \in \mathbb{R}^n xRn,则矩阵与向量的乘积 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

它的几何意义是由三个向量构成的平行六面体的体积。

四、结论

向量的点乘和叉乘是基本的代数运算,点乘与矩阵乘法直接相关,而叉乘可以用反对称矩阵表示,从而与矩阵运算建立联系。理解它们之间的关系,有助于在工程计算、物理模拟和计算机图形学中灵活运用矩阵方法解决复杂问题。


http://www.ppmy.cn/embedded/125028.html

相关文章

专业软件共享技术的应用与预测

摘要:为掌握集团公司科研软件许可证的真实需求,提高其利用率,通过对各分公司海量监测数据的统计分析,挖掘软件许可证应用峰谷周期不同的规律,利用共享方法设计和建立许可证应用中心,实现企业版软件在集团公…

代码随想录:53、寻宝

53.寻宝 采用两种最小生成树算法分别来做一下 Prim算法 #include <iostream>#include<vector> #include<climits>using namespace std;#define endl \nint main(){std::ios::sync_with_stdio(false);cin.tie(0); cout.tie(0);int v,e;int x,y,k;cin>>…

制作一个流水灯,控制发光二极管由上至下再由下至上反复循环点亮显示,每次点亮一个发光二级管(Proteus 与Keil uVision联合仿真)

一、代码编写 &#xff08;1&#xff09;编写程序来控制发光二极管由上至下的反复循环流水点亮&#xff0c;每次点亮一个发光二极管。 #define uchar unsigned char // 定义uchar为unsigned char类型uchar tab[] {0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f, 0x7f, 0x…

如何保证 Redis 与数据库的数据一致性

在现代的应用开发中&#xff0c;Redis 作为一种高性能的内存数据库&#xff0c;常常被用来缓存热点数据&#xff0c;以提高系统的响应速度和吞吐量。然而&#xff0c;由于 Redis 是内存数据库&#xff0c;与传统的关系型数据库&#xff08;如 MySQL&#xff09;在数据存储和管理…

第五章:软件工程 (5.1软件工程定义--5.2软件需求)

5.1 软件工程定义 软件工程由方法、工具和过程3个部分组成。 方法&#xff1a; 完成软件项目的技术手段&#xff0c;支持整个软件生命周期 工具&#xff1a; 是人们在开发软件的活动中智力和体力的扩展与延伸&#xff0c;它自动或半自动地支持软件的开发和管理&#xff0c;支…

Sym-NCO:利用对称性进行神经组合优化

文章目录 Abstract1 Introduction2 组合优化马尔可夫决策过程中的对称性2.1 组合马尔可夫决策过程2.2 CO-MDP中的对称性3 对称神经组合优化3.1 通过LSym-RL正则化REINFORCE的问题和解决方案对称性3.2 通过预先识别的对称性学习不变表示: L i n v L_{inv} Linv​4 相关工作5 Ex…

回到原点再出发

原文What Goes Around Comes Around作者Michael Stonebraker & Joseph M. Hellerstein其他译文https://zhuanlan.zhihu.com/p/111322429 1. 摘要 本文总结了近35年来的数据模型方案&#xff0c;分成9个不同的时代&#xff0c;讨论了每个时代的方案。我们指出&#xff0c;…

Golang | Leetcode Golang题解之第456题132模式

题目&#xff1a; 题解&#xff1a; func find132pattern(nums []int) bool {candidateI, candidateJ : []int{-nums[0]}, []int{-nums[0]}for _, v : range nums[1:] {idxI : sort.SearchInts(candidateI, 1-v)idxJ : sort.SearchInts(candidateJ, -v)if idxI < idxJ {ret…