当前位置: 首页 > article >正文

数学基础-向量投影

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

一、向量的点乘(内积)

定义:

对于两个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.kler.cn/news/339183.html

相关文章:

  • 头歌实践教学平台 大数据编程 实训答案(二)
  • Vue基础指令用法
  • 【信息论基础第四讲】信息的流动——平均互信息及其性质
  • Java8新特性, 函数式编程及Stream流用法大全
  • 重装 open-vm-tools
  • 网络通信——OSPF和RIP的区别(总结)
  • 全球IP归属地查询-IP地址查询-IP城市查询-IP地址归属地-IP地址解析-IP位置查询-IP地址查询API接口
  • SAP学习笔记 - Basis01 - 创建Client ,拷贝Client
  • 【图论】迪杰特斯拉算法
  • 【PGCCC】从 PostgreSQL 表恢复已删除的数据 | 翻译
  • 自动机器学习(AutoML):实战项目中的应用与实现
  • 《重生到现代之从零开始的C语言生活》—— 结构体和位段
  • 【分布式微服务云原生】探索MySQL的高级特性:主从复制、读写分离与分库分表
  • pnpm在monorepo架构下不能引用其他模块的问题
  • 【C语言】指针练习题
  • springboot旧物置换网站 (附源码)
  • 亚马逊AI编程工具Amazon Q 和 Amazon CodeWhisperer使用教程
  • Android2024.2.1升级错误
  • HTTP协议:连接世界的语言 —— Python中的实践与探索
  • 《计算机原理与系统结构》学习系列——计算机的算数运算(上)