探索向量:从基本概念到运算解析
在数学和物理中,向量扮演着极其重要的角色。无论是在描述空间中的位移、速度、加速度,还是在计算机图形学、工程等领域,向量都无处不在。本文将带您一步步认识向量,从最基本的概念到常见的运算方法。
向量的基本概念
首先,要明确一点:
向量没有位置,只有大小和方向。
虽然理论上可以构造一个包含一切的参考系,并选择一个点作为原点,从而定义“绝对”坐标系,但在实际应用中绝对位置意义并不大。事实上,相对论的一个重要观点就是不存在绝对参考系。更重要的是,我们关心的是向量之间的相对关系,而非它们在宇宙中的绝对位置。
在数学中,我们可以将任意一点用一个从原点出发的向量表示,这样便把几何问题转换为向量运算的问题。线性代数便是研究这类问题的分支,但它主要把向量看作一个数值数组,而3D数学更注重向量的几何意义。
加性单位元与负向量
任何集合都有一个加性单位元(通常记作 0 或 x),满足对集合中任一元素 y,都有
同理,对于任一元素 x,总存在一个加性逆元 -x,满足
x+(−x)=0
对于向量来说,零向量就是唯一大小为零的向量。尽管在图中常用一个点来表示零向量,但请记住,它仅代表“无位移”,并不代表某个具体的位置。
向量的大小(模、长度)
向量的大小(或称为模、长度)并不直接包含在向量的表示中,需要通过计算得到。对于 n 维向量
v=[v1 v2 ⋯ vn],
其大小计算公式为:
∥v∥=v12+v22+⋯+vn−12+vn2
在线性代数中,向量的大小用向量两边加双竖线表示,这和标量的"绝对值"在标量两边加单竖线表 示类似。
例如,计算 3D 向量 [5−47] 的大小:
[5−47]=52+(−4)2+72=25+16+49=90≈9.4868
标量与向量的乘法
标量与向量可以相乘,乘积得到一个与原向量平行的新向量,其效果为缩放原向量的长度。如果标量为负数,则不仅缩放,同时使向量的方向相反。
标量与向量乘的顺序并不重要, 但经常把标量写在左边,数学表述为:
ka1a2⋮an−1an=a1a2⋮an−1ank=ka1ka2⋮kan−1kan
- 标量与向量相乘时,不需要写乘号。将两个量挨着写即表示相乘(常将标量写在左边)。
- 标量与向量的乘法和除法优先级高于加法和减法。例如, 3 a+b 是 ((3 a)+b) ,而不是 (3(a+b))
- 标量不能除以向量,并且向量不能除以另一个向量。
- 负向量能被认为是乘法的特殊情况,乘以标量-1。
单位向量与标准化
对于许多向量,我们只关心它的方向而不关心其大小。如:"我面向的是什么方向?",在这样的情况 下,使用单位向量将非常方便。单位向量就是大小为1的向量,单位向量经常也被称作标准化向量或更简单地称为"法线"
对任意非零向量 v ,都能计算出一个和 v 方向相同的单位向量 Vnorm 。这个过程被称作向量的"标准化",要标准化向量,将向量除以它的大小(模)即可。
vnorm=∥v∥v,v=0
例如,标准化2D向量[12,−5]:
∥[12−5]∥[12−5]=122+(−5)2[12−5]=169[12−5]=13[12−5]=[0.923−0.385]
零向量不能被标准化。数学上这是不允许的,因为将导致除零。几何上也没有意义,因为零向量没有方向。
向量加法与减法
向量加法的运算法则很简单:两个向量相加,将对应分量相加即可。
a1a1⋮an−1an+b1b1⋮bn−1bn=a1+b1a1+b2⋮an−1+bn−1an+bn
减法解释为加负向量, a−b=a+(−b)
- 和标量加法一样,向量加法满足交换律,但向量减法不满足交换律。永远有a+b=b+a ,但 a−b=−(b−a) ,仅当 a=b 时, a−b=b−a
向量a和b相加的几何解释为:
平移向量,使向量a的头连接向量b的尾,接着从a的尾向b的头画 一个向量。这就是向量加法的"三角形法则"。向量的减法与之类似
向量的点乘(内积)
术语"点乘"来自记法a·b中的点号。向量的点乘(或称内积)是通过将对应分量相乘后求和得到一个标量。
a1a2⋮an−1an⋅b1b2⋮bn−1bn=a1b1+a2b2+⋯+an−1bn−1+anbn
用连加符号简写为:
a⋅b=i=1∑naibi
2D、3D中向量点乘的例子如下:
[46]⋅[−37]=(4)(−3)+(6)(7)=30
3−27⋅04−1=(3)(0)+(−2)(4)+(7)(−1)=−15
一般来说,点乘结果描述了两个向量的"相似"程度,点乘结果越大,两向量越相近。几何解释更加直观

点乘等于向量大小与向量夹角的cos值的积:
a⋅b=∥a∥∥b∥cosθ
用点乘计算两个向量的夹角:
θ=arccos(∥a∥∥b∥a⋅b)
如果a、b是单位向量,就可以避免公式中的除法运算。在这种情况下,上式中的分母是1,只剩下:
θ=arccos(a.b) (a和b是单位向量)
向量投影
给定两个向量 v 和 n ,能将 v 分解成两个分量: v∥和 v⊥ 。它们分别平行于和垂直于n,并满足 v=v∥+v⊥ 。一般称平行分量 v∥ 为 v 在 n 上的投影。
我们使用点乘计算投影。下图展示了其几何解释。

下面我们先求 v∥ ,观察到 v∥ 平行于 n 它可以表示为 v∥=n∥n∥∥v∥∥
因此只要能够求出 v∥ 的模,就能够计算出该投影向量的值了。幸运的是,三角分解能帮助我们求出该值:
cosθ=∥v∥v∥
cosθ∥v∥=v∥
将 v∥ 代入原等式并应用公式 a⋅b=∥a∥∥b∥cosθ , 得到:
v∥=n∥n∥∥v∥cosθ=n∥n∥2∥v∥∥n∥cosθ=n∥n∥2v⋅n
当然,如果 n 是单位向量,除法就不必要了。 知道 v∥ ,求 v⊥ 就很容易了,如下: v⊥+v∥=v
v⊥=v−v∥=v−n∥n∥2v⋅n
向量的叉乘(外积)
另一种向量乘法称作叉乘或叉积,仅可应用于3D向量。和点乘不一样,点乘得到一个标量并满足 交换律,向量叉乘得到一个向量并且不满足交换律。
和点乘一样,术语"叉乘"来自记法 a×b 中的叉号。这里要把叉乘号写出来,不能像标量乘法那样 省略它。
叉乘公式:
x1y1z1×x2y2z2=y1z2−z1y2z1x2−x1z2x1y2−y1x2
示例如下:
134×2−58=(3)(8)−(4)(−5)(4)(2)−(1)(8)(1)(−5)−(3)(2)=440−10
叉乘的运算优先级和点乘一样,乘法在加减法之前计算。当点乘和又乘在一起时,叉乘优先计算: a⋅b×c=a⋅(b×c) 。因为点乘返回一个标量,同时标量和向量间不能叉乘,所以 (a⋅b)×c 没有定义。运 算 a⋅(b×c) 称作三重积。
几何解释:

a×b 的长度等于向量的大小与向量夹角sin值的积,如下
∥a×b∥=∥a∥∥b∥sinθ
叉乘的长度与向量夹角的sin值有关
可以看到,∥a×b∥ 也等于以 a 和 b 为两边的平行四边形的面积。
已经证明了 a×b 垂直于a、b。但是垂直于a、b有两个方向。a×b指向哪个方向呢?通过将a的头 与b的尾相接,并检查从a到b是顺时针还是逆时针,能够确定 a×b 的方向。在左手坐标系中,如果a 和b呈顺时针,那么a×b指向您。如果a和b呈逆时针,a×b远离您。在右手坐标系中,恰好相反。如 果a和b呈顺时针,a×b远离您,如果a和b呈逆时针,a×b指向您。
总结:
本文介绍了向量的基本概念及其运算:
• 向量只具有大小和方向,没有固定的位置。
• 加性单位元和负向量的概念保证了向量运算的封闭性。
• 标量乘法用于缩放向量,而标准化操作可以获得单位向量。
• 向量加法与减法的运算规则简单直观。
• 点乘(内积)不仅能计算数值,还蕴含着两向量夹角的几何信息。
• 向量投影帮助我们将一个向量分解为与另一向量平行和垂直的部分。
• 叉乘(外积)专属于 3D 向量,其结果不仅给出面积信息,还确定了垂直于原向量平面的方向。
掌握这些基本运算和概念,对于理解高维空间的几何性质、解决物理问题以及应用于工程和计算机图形学都具有重要意义。希望这篇博客能为您提供有益的参考,帮助您在向量的世界中游刃有余!