探索向量:从基本概念到运算解析

218 阅读4分钟

探索向量:从基本概念到运算解析

在数学和物理中,向量扮演着极其重要的角色。无论是在描述空间中的位移、速度、加速度,还是在计算机图形学、工程等领域,向量都无处不在。本文将带您一步步认识向量,从最基本的概念到常见的运算方法。

向量的基本概念

首先,要明确一点:

向量没有位置,只有大小和方向。

虽然理论上可以构造一个包含一切的参考系,并选择一个点作为原点,从而定义“绝对”坐标系,但在实际应用中绝对位置意义并不大。事实上,相对论的一个重要观点就是不存在绝对参考系。更重要的是,我们关心的是向量之间的相对关系,而非它们在宇宙中的绝对位置。 在数学中,我们可以将任意一点用一个从原点出发的向量表示,这样便把几何问题转换为向量运算的问题。线性代数便是研究这类问题的分支,但它主要把向量看作一个数值数组,而3D数学更注重向量的几何意义。

加性单位元与负向量

任何集合都有一个加性单位元(通常记作 0 或 x),满足对集合中任一元素 y,都有

y+0=y y + 0 = y

同理,对于任一元素 x,总存在一个加性逆元 -x,满足

x+(x)=0 x + (-x) = 0

对于向量来说,零向量就是唯一大小为零的向量。尽管在图中常用一个点来表示零向量,但请记住,它仅代表“无位移”,并不代表某个具体的位置。

向量的大小(模、长度)

向量的大小(或称为长度)并不直接包含在向量的表示中,需要通过计算得到。对于 n 维向量

v=[v1 v2  vn], \mathbf{v} = \begin{bmatrix} v_1 \ v_2 \ \cdots \ v_n \end{bmatrix},

其大小计算公式为:

v=v12+v22++vn12+vn2 \|\mathbf{v}\| = \sqrt{\mathbf{v}_1^2 + \mathbf{v}_2^2 + \cdots + \mathbf{v}_{n - 1}^2 + \mathbf{v}_n^2}

在线性代数中,向量的大小用向量两边加双竖线表示,这和标量的"绝对值"在标量两边加单竖线表 示类似。

例如,计算 3D 向量 [547]\begin{bmatrix}5& - 4&7\end{bmatrix} 的大小:

[547]=52+(4)2+72=25+16+49=909.4868 \begin{align} \left\lVert\begin{bmatrix}5& - 4&7\end{bmatrix}\right\rVert&=\sqrt{5^{2}+(-4)^{2}+7^{2}}\\ &=\sqrt{25 + 16+49}\\ &=\sqrt{90}\\ &\approx9.4868 \end{align}

标量与向量的乘法

标量与向量可以相乘,乘积得到一个与原向量平行的新向量,其效果为缩放原向量的长度。如果标量为负数,则不仅缩放,同时使向量的方向相反。

标量与向量乘的顺序并不重要, 但经常把标量写在左边,数学表述为:

k[a1a2an1an]=[a1a2an1an]k=[ka1ka2kan1kan]k\left[\begin{array}{c}a_{1} \\ a_{2} \\ \vdots \\ a_{n-1} \\ a_{n}\end{array}\right]=\left[\begin{array}{c}a_{1} \\ a_{2} \\ \vdots \\ a_{n-1} \\ a_{n}\end{array}\right] k=\left[\begin{array}{c}k a_{1} \\ k a_{2} \\ \vdots \\ k a_{n-1} \\ k a_{n} \end{array}\right]
  • 标量与向量相乘时,不需要写乘号。将两个量挨着写即表示相乘(常将标量写在左边)。
  • 标量与向量的乘法和除法优先级高于加法和减法。例如, 3 a+b 是 ((3 a)+b) ,而不是 (3(a+b))
  • 标量不能除以向量,并且向量不能除以另一个向量。
  • 负向量能被认为是乘法的特殊情况,乘以标量-1。

单位向量与标准化

对于许多向量,我们只关心它的方向而不关心其大小。如:"我面向的是什么方向?",在这样的情况 下,使用单位向量将非常方便。单位向量就是大小为1的向量,单位向量经常也被称作标准化向量或更简单地称为"法线"

对任意非零向量 v ,都能计算出一个和 v 方向相同的单位向量 VnormV_{norm } 。这个过程被称作向量的"标准化",要标准化向量,将向量除以它的大小(模)即可。

vnorm=vv,v0v_{norm}=\frac{v}{\| v\| }, v \neq 0

例如,标准化2D向量[12,5][12,-5]:

[125][125]=[125]122+(5)2=[125]169=[125]13=[0.9230.385]\begin{aligned} \frac{[12-5]}{\| [12-5]\| } & =\frac{[12-5]}{\sqrt{12^{2}+(-5)^{2}}} \\ & =\frac{[12-5]}{\sqrt{169}} \\ & =\frac{[12-5]}{13} \\ & =[0.923-0.385] \end{aligned}

零向量不能被标准化。数学上这是不允许的,因为将导致除零。几何上也没有意义,因为零向量没有方向。

向量加法与减法

向量加法的运算法则很简单:两个向量相加,将对应分量相加即可。

[a1a1an1an]+[b1b1bn1bn]=[a1+b1a1+b2an1+bn1an+bn]\left[\begin{array}{c} a_{1} \\ a_{1} \\ \vdots \\ a_{n-1} \\ a_{n} \end{array}\right]+\left[\begin{array}{c} b_{1} \\ b_{1} \\ \vdots \\ b_{n-1} \\ b_{n} \end{array}\right]=\left[\begin{array}{c} a_{1}+b_{1} \\ a_{1}+b_{2} \\ \vdots \\ a_{n-1}+b_{n-1} \\ a_{n}+b_{n} \end{array}\right]

减法解释为加负向量, ab=a+(b)a-b=a+(-b)

  • 和标量加法一样,向量加法满足交换律,但向量减法不满足交换律。永远有a+b=b+aa+b=b+a ,但 ab=(ba)a-b=-(b-a) ,仅当 a=ba=b 时, ab=baa-b=b-a

向量a和b相加的几何解释为:

平移向量,使向量a的头连接向量b的尾,接着从a的尾向b的头画 一个向量。这就是向量加法的"三角形法则"。向量的减法与之类似

向量的点乘(内积)

术语"点乘"来自记法a·b中的点号。向量的点乘(或称内积)是通过将对应分量相乘后求和得到一个标量。

[a1a2an1an][b1b2bn1bn]=a1b1+a2b2++an1bn1+anbn\left[\begin{array}{c} a_{1} \\ a_{2} \\ \vdots \\ a_{n-1} \\ a_{n} \end{array}\right] \cdot\left[\begin{array}{c} b_{1} \\ b_{2} \\ \vdots \\ b_{n-1} \\ b_{n} \end{array}\right]=a_{1} b_{1}+a_{2} b_{2}+\cdots+a_{n-1} b_{n-1}+a_{n} b_{n}

用连加符号简写为:

ab=i=1naibia \cdot b=\sum_{i=1}^{n} a_{i} b_{i}

2D、3D中向量点乘的例子如下:

[46][37]=(4)(3)+(6)(7)=30\left[\begin{array}{ll}4 & 6\end{array}\right] \cdot\left[\begin{array}{ll}-3 & 7\end{array}\right]=(4)(-3)+(6)(7)=30
[327][041]=(3)(0)+(2)(4)+(7)(1)=15\left[\begin{array}{c}3 \\ -2 \\ 7\end{array}\right] \cdot\left[\begin{array}{c}0 \\ 4 \\ -1\end{array}\right]=(3)(0)+(-2)(4)+(7)(-1)=-15

一般来说,点乘结果描述了两个向量的"相似"程度,点乘结果越大,两向量越相近。几何解释更加直观

点乘几何解释.svg

点乘等于向量大小与向量夹角的cos值的积:

ab=abcosθa \cdot b=\| a\| \| b\| cos \theta

用点乘计算两个向量的夹角: θ=arccos(abab)\theta=arccos \left(\frac{a \cdot b}{\| a\| \| b\| }\right) 如果a、b是单位向量,就可以避免公式中的除法运算。在这种情况下,上式中的分母是1,只剩下:

θ=arccos(a.b)    (ab是单位向量)\theta=arccos(a.b) \ \ \ \ (a和b是单位向量)

向量投影

给定两个向量 v 和 n ,能将 v 分解成两个分量: vv_{\|}vv_{\perp} 。它们分别平行于和垂直于n,并满足 v=v+vv=v_{\|}+v_{\perp} 。一般称平行分量 vv_{\|} 为 v 在 n 上的投影。 我们使用点乘计算投影。下图展示了其几何解释。

向量投影 1.svg

下面我们先求 vv_{\|} ,观察到 vv_{\|} 平行于 n 它可以表示为 v=nvnv_{\|}=n \frac{\left\|v_{\|}\right\|}{\|n\|} 因此只要能够求出 vv_{\|} 的模,就能够计算出该投影向量的值了。幸运的是,三角分解能帮助我们求出该值:

cosθ=vvcos \theta=\frac{\left\| v_{\|}\right\| }{\| v\| }
cosθv=vcos \theta\| v\| =\left\| v_{\| }\right\|

v\left\|v_{\|}\right\| 代入原等式并应用公式 ab=abcosθa \cdot b=\| a\| \| b\| cos \theta , 得到:

v=nvcosθn=nvncosθn2=nvnn2\begin{aligned} v_{\|} & =n \frac{\| v\| cos \theta}{\| n\| } \\ & =n \frac{\| v\| \| n\| cos \theta}{\| n\| ^{2}} \\ & =n \frac{v \cdot n}{\| n\| ^{2}} \end{aligned}

当然,如果 n 是单位向量,除法就不必要了。 知道 vv_{\|} ,求 vv_{\perp} 就很容易了,如下: v+v=vv_{\perp}+v_{\| }= v

v=vv=vnvnn2\begin{aligned} v_{\perp} & = v -v_{\| } \\ & = v -n \frac{v \cdot n}{\| n\| ^{2}} \end{aligned}

向量的叉乘(外积)

另一种向量乘法称作叉乘或叉积,仅可应用于3D向量。和点乘不一样,点乘得到一个标量并满足 交换律,向量叉乘得到一个向量并且不满足交换律。

和点乘一样,术语"叉乘"来自记法 a×ba\times b 中的叉号。这里要把叉乘号写出来,不能像标量乘法那样 省略它。 叉乘公式:

[x1y1z1]×[x2y2z2]=[y1z2z1y2z1x2x1z2x1y2y1x2]\left[\begin{array}{l}x_{1} \\ y_{1} \\ z_{1}\end{array}\right] \times\left[\begin{array}{l}x_{2} \\ y_{2} \\ z_{2}\end{array}\right]=\left[\begin{array}{l}y_{1} z_{2}-z_{1} y_{2} \\ z_{1} x_{2}-x_{1} z_{2} \\ x_{1} y_{2}-y_{1} x_{2}\end{array}\right]

示例如下:

[134]×[258]=[(3)(8)(4)(5)(4)(2)(1)(8)(1)(5)(3)(2)]=[44010]\left[\begin{array}{l} 1 \\ 3 \\ 4 \end{array}\right] \times\left[\begin{array}{c} 2 \\ -5 \\ 8 \end{array}\right]=\left[\begin{array}{c} (3)(8)-(4)(-5) \\ (4)(2)-(1)(8) \\ (1)(-5)-(3)(2) \end{array}\right]=\left[\begin{array}{c}44 \\ 0 \\ -10 \end{array}\right]

叉乘的运算优先级和点乘一样,乘法在加减法之前计算。当点乘和又乘在一起时,叉乘优先计算: ab×c=a(b×c)a \cdot b ×c=a \cdot(b ×c) 。因为点乘返回一个标量,同时标量和向量间不能叉乘,所以 (ab)×c(a \cdot b) ×c 没有定义。运 算 a(b×c)a \cdot(b ×c) 称作三重积。

几何解释:

叉乘几何意义.svg

a×ba \times b 的长度等于向量的大小与向量夹角sin值的积,如下

a×b=absinθ\| a × b\| =\| a\| \| b\| sin \theta

叉乘的长度与向量夹角的sin值有关 可以看到,a×b\|a ×b\| 也等于以 a 和 b 为两边的平行四边形的面积。 已经证明了 a×ba ×b 垂直于a、b。但是垂直于a、b有两个方向。a×ba ×b指向哪个方向呢?通过将a的头 与b的尾相接,并检查从a到b是顺时针还是逆时针,能够确定 a×ba ×b 的方向。在左手坐标系中,如果a 和b呈顺时针,那么a×ba ×b指向您。如果a和b呈逆时针,a×ba ×b远离您。在右手坐标系中,恰好相反。如 果a和b呈顺时针,a×ba ×b远离您,如果a和b呈逆时针,a×ba ×b指向您。

总结:

本文介绍了向量的基本概念及其运算:

• 向量只具有大小和方向,没有固定的位置。

• 加性单位元负向量的概念保证了向量运算的封闭性。

• 标量乘法用于缩放向量,而标准化操作可以获得单位向量。

• 向量加法减法的运算规则简单直观。

• 点乘(内积)不仅能计算数值,还蕴含着两向量夹角的几何信息。

• 向量投影帮助我们将一个向量分解为与另一向量平行和垂直的部分。

• 叉乘(外积)专属于 3D 向量,其结果不仅给出面积信息,还确定了垂直于原向量平面的方向。

掌握这些基本运算和概念,对于理解高维空间的几何性质、解决物理问题以及应用于工程和计算机图形学都具有重要意义。希望这篇博客能为您提供有益的参考,帮助您在向量的世界中游刃有余!