给初中生的向量入门(下)

Info

这是上下两篇文章中的下篇。上篇为:给初中生的向量入门(上)

向量点乘

引入向量点乘

现在我们知道了有向量,还有向量相关的运算——向量加减与向量数乘。可是大家可能会这个向量数乘感到不自在——这始终是一个向量与一个实数两种不同对象之间的乘法,交换律无从谈起。那像实数可以跟实数自己相乘一样,向量能不能也跟向量相乘呢?

答案是——可以有。我们来引入一种名为点乘的向量“乘法”。

在物理中,我们学到过合外力做功的计算——力与在力的方向上的移动的距离的乘积:

W=FsW = Fs

这个公式是两个数量之间的乘积。但是我们知道,力这个物理量是有方向的,是个向量。同时,我们引入另一个向量——位移,实际上,功这个物理量,就是力与位移这两个向量的“乘积”。

位移

实际上,移动是有方向的。我们用位移这个物理量代表了这种有方向的移动过程。

位移的方向为从移动的起点指向终点,位移的大小为从起点到终点的直线距离,用 s⃗\vec{s} 表示。

我们一开始引入向量时所提到的“代表一个平移运动的向量”,实际上就是位移。

我们称,功就是力与位移这两个向量的点乘。符号表示为:

W=F⃗⋅s⃗W = \vec{F}\cdot \vec{s}

那么问题就来了:我们现在只会计算力和位移方向相同的情况。

如果力和位移的方向不同,功应该怎么计算呢?

“发明”向量点乘

我们现在完全不懂这个点乘运算应该怎么算。但通过研究他的数学性质,其实不难推理出来。

首先,对力与位移的向量同时旋转一个角度,点乘的结果不变。这个很好理解:空间上换个角度做完全相同的物理实验,结果不可能发生改变。这是因为空间上各个方向的物理定律都是一样的。

同样地,如果交换两个向量的方向,点乘的结果也不变。这也是由于空间性质导致的,我们空间镜像对称地做同样的物理实验,结果也不应该改变。

然后我们假设物体所受合外力不变,先移动一段距离然后再移动一段距离,所做的功加起来应当等于力在总的位移上做的功。若位移距离变为原来的 kk 倍,最后所做的功也应该变为 kk 倍。若位移方向相反(原路返回),所做的功也会变为负功。

F⃗⋅(s1⃗+s2⃗)=F⃗⋅s1⃗+F⃗⋅s2⃗F⃗⋅(ks⃗)=k(F⃗⋅s⃗)F⃗⋅(−s⃗)=−F⃗⋅s⃗\begin{align} \vec{F}\cdot(\vec{s_{1}}+\vec{s_{2}}) & =\vec{F}\cdot \vec{s_{1}}+\vec{F}\cdot \vec{s_{2}} \\ \vec{F}\cdot(k\vec{s}) & =k(\vec{F}\cdot \vec{s}) \\ \vec{F}\cdot(-\vec{s}) & =-\vec{F}\cdot \vec{s} \end{align}

这对力也是一样的。运动位移不变时,各个分力分别做功,功的总和应当等于他们的合力所做的功。力的大小变为 kk 倍,所做的功也变为 kk 倍。 k=−1k=-1 ,即力的方向相反,做功也应该相反。

F⃗⋅(s1⃗+s2⃗)=F⃗⋅s1⃗+F⃗⋅s2⃗F⃗⋅(ks⃗)=k(F⃗⋅s⃗)\begin{align} \vec{F}\cdot(\vec{s_{1}}+\vec{s_{2}}) & =\vec{F}\cdot \vec{s_{1}}+\vec{F}\cdot \vec{s_{2}} \\ \vec{F}\cdot(k\vec{s}) & =k(\vec{F}\cdot \vec{s}) \end{align}

这就像是,点乘这个运算对两边的向量加法有分配律,并且与向量数乘“优先级相同”。这也是我们感觉点乘运算是一个“乘法”的原因。

性质总结

我们即将发明一种叫点积的运算 a⃗⋅b⃗\vec{a}\cdot \vec{b} ,这个运算输入两个向量,输出一个数,我们要求这种运算拥有以下两条性质:

  • 体现空间各向同性:运算结果只与两个向量的大小、夹角有关,而与向量具体方向无关
  • 是个“乘法”:对两边的输入向量的加法都有分配律,这种性质叫双线性性

我们可以首先推理出,对于两个垂直的向量 a⃗\vec{a} 与 b⃗\vec{b} ,他们的点乘 a⃗⋅b⃗\vec{a}\cdot \vec{b} 性质。

由于双线性,我们将其中一个向量取反,结果应该相反:

(−a⃗)⋅b⃗=−(a⃗⋅b⃗)(-\vec{a})\cdot \vec{b}=-(\vec{a}\cdot \vec{b})

而同时,即使将其中一个向量取反,他们依然是大小不变、夹角依然成 90°90\degree 的两个向量。即:

(−a⃗)⋅b⃗=a⃗⋅b⃗(-\vec{a})\cdot \vec{b}=\vec{a}\cdot \vec{b}

如此我们可以得出唯一可行的结论:互相垂直的两个向量,他们的点乘结果必定为零。

而对于方向相同的两个向量,功的物理公式已经剧透了——点乘结果就是两个向量大小的乘积:

a⃗⋅b⃗=∣a⃗∣∣b⃗∣\vec{a}\cdot \vec{b}=|\vec{a}||\vec{b}|

接下来就很简单了。对于任意向量 a⃗\vec{a} 、 b⃗\vec{b} ,我们都可以将其中一个向量 a⃗\vec{a} 沿平行于 b⃗\vec{b} 方向与垂直于 b⃗\vec{b} 方向,分解为 a⊥⃗\vec{a_{\perp}} 与 a∥⃗\vec{a_{\parallel}} 。从而得到:

a⃗⋅b⃗=(a⊥⃗+a∥⃗)⋅b⃗=a⊥⃗⋅b⃗+a∥⃗⋅b⃗=0+∣a∥⃗∣∣b⃗∣\begin{align} \vec{a}\cdot \vec{b} & =(\vec{a_{\perp}}+\vec{a_{\parallel}})\cdot \vec{b} \\ & =\vec{a_{\perp}}\cdot \vec{b}+\vec{a_{\parallel}}\cdot \vec{b} \\ & =0+|\vec{a_{\parallel}}||\vec{b}| \end{align}

而实际上,平行向量 a∥⃗\vec{a_{\parallel}} 的长度,就是 ∣a⃗∣cos⁡θ|\vec{a}|\cos \theta 。

由此可得,对于任意向量 a⃗\vec{a} 与 b⃗\vec{b} ,都有:

a⃗⋅b⃗=∣a⃗∣∣b⃗∣cos⁡θ\boxed{\vec{a}\cdot \vec{b}=|\vec{a}||\vec{b}|\cos \theta}

很明显,如果我们将 b⃗\vec{b} 沿平行 a⃗\vec{a} 与垂直 a⃗\vec{a} 方向分解,也能得到同样的结果。

Info

我们到这里就能解答章节开头的疑问。对于物理上不同方向的力与位移所做功,计算方式为:

W=∣F⃗∣∣s⃗∣cos⁡θW = |\vec{F}||\vec{s}|\cos \theta

然而,点乘这个运算不仅在物理上有用,在数学几何上更有大用处。我们接下来抛开物理,继续讨论点乘这个运算在数学上的作用。

点乘的坐标表示

之前我们一直在说,一个向量可以与点的坐标一一对应。实际上,如果知道两个向量的坐标表示,他们之间的点乘结果可以更快速地计算出来。

我们先来引入两个好用的向量: x 轴正方向上长度为1的向量 ex⃗=(1,0)\vec{e_{x}}=(1,0) 与 y 轴正方向上长度为1的向量 ey⃗=(0,1)\vec{e_{y}}=(0,1) 。我们称他们为 x 方向的单位向量与 y 方向的单位向量。

对于任意向量 a⃗=(ax,ay)\vec{a}=(a_{x},a_{y}) ,我们必然能用 ex⃗\vec{e_{x}} 与 ey⃗\vec{e_{y}} 来表示他:

a⃗=axex⃗+ayey⃗\vec{a}=a_{x}\vec{e_{x}}+a_{y}\vec{e_{y}}

由于我们要的点乘运算有分配律,所以对于任意向量 a⃗\vec{a} 与 b⃗\vec{b} ,都有:

a⃗⋅b⃗=(axex⃗+ayey⃗)⋅(bxex⃗+byey⃗)=axbxex⃗⋅ex⃗+axbyex⃗⋅ey⃗+aybxey⃗⋅ex⃗+aybyey⃗⋅ey⃗\begin{align} \vec{a}\cdot \vec{b} & = (a_{x}\vec{e_{x}}+a_{y}\vec{e_{y}})\cdot(b_{x}\vec{e_{x}}+b_{y}\vec{e_{y}}) \\ & =a_{x}b_{x}\vec{e_{x}}\cdot \vec{e_{x}}+a_{x}b_{y}\vec{e_{x}}\cdot \vec{e_{y}}+a_{y}b_{x}\vec{e_{y}}\cdot \vec{e_{x}}+a_{y}b_{y}\vec{e_{y}}\cdot \vec{e_{y}} \end{align}

其中, ex⃗⋅ex⃗\vec{e_{x}}\cdot \vec{e_{x}} 与 ey⃗⋅ey⃗\vec{e_{y}}\cdot \vec{e_{y}} 为两个同向向量相点乘,结果为其长度相乘,即为 1 。 ex⃗⋅ey⃗\vec{e_{x}}\cdot \vec{e_{y}} 与 ey⃗⋅ex⃗\vec{e_{y}}\cdot \vec{e_{x}} 为两个垂直向量相点乘,结果为 0 。

如此可立刻得出:

a⃗⋅b⃗=axbx+ayby\boxed{\vec{a}\cdot \vec{b}=a_{x}b_{x}+a_{y}b_{y}}
Info

我们回顾整个过程可以发现,我们推理的过程并不受限于二维空间。我们可以通过同样的方式,推理得到三维、四维甚至更高维度的向量点乘运算也是类似的计算方式。

向量长度

我们考虑一种特别的情况:两个相同的向量进行点积。由于空间上的对称性,我们不妨将这个向量旋转到 x 轴正方向上,点积的结果不变。

假设向量 a⃗\vec{a} 旋转到 x 轴正方向上时,向量为 (a,0)(a,0) ,其长度为 ∣a⃗∣=a|\vec{a}|=a 。则应有:

a⃗⋅a⃗=(aex⃗)⋅(aex⃗)=a2(ex⃗⋅ex⃗)=a2\begin{align} \vec{a}\cdot \vec{a} & = (a\vec{e_{x}})\cdot(a \vec{e_{x}}) \\ & = a^2(\vec{e_{x}}\cdot \vec{e_{x}}) \\ & = a^2 \end{align}

即,向量长度的平方等于它与自己的点积。

其实,用上一节得到的两个公式,也能推出相同的结果:

a⃗⋅a⃗=ax2+ay2=∣a∣2cos⁡0°=∣a∣2\begin{align} \vec{a}\cdot \vec{a} & = a_{x}^2+a_{y}^2 \\ & = |a|^2\cos 0 \degree \\ & = |a|^2 \end{align}

我们由此得到求向量 a⃗\vec{a} 的长度 ∣a⃗∣|\vec{a}| 的方式:

∣a⃗∣2=a⃗⋅a⃗=ax2+ay2|\vec{a}|^2=\vec{a}\cdot \vec{a}=a_{x}^2+a_{y}^2
Tip

在二维空间中,这实际上就是勾股定理。直角边的长度分别为向量的横坐标与纵坐标(的绝对值),斜边为向量的长度。

但正如前面所提示的,这完全可以扩展到三维甚至更高维空间。比如在三维空间中,就有:

∣a⃗∣2=ax2+ay2+az2|\vec{a}|^2=a_{x}^2+a_{y}^2+a_{z}^2

计算两个向量的夹角

通过点积的两个公式,我们可以得到一个等式:

axbx+ayby=∣a⃗∣∣b⃗∣cos⁡θa_{x}b_{x}+a_{y}b_{y}=|\vec{a}||\vec{b}|\cos \theta

左边只与两个向量的坐标分量有关,是点积的代数表示。右边只与两个向量的大小与夹角有关,与坐标系的选取方向无关,是点积的几何表示。

如果我们已知两个向量的坐标表示 a⃗=(ax,ay)\vec{a}=(a_{x},a_{y}) 、 b⃗=(bx,by)\vec{b}=(b_{x},b_{y}) ,可知两个向量的长度分别为 ∣a⃗∣=ax2+ay2|\vec{a}|=\sqrt{ a_{x}^2+a_{y}^2 } 、 ∣b⃗∣=bx2+by2|\vec{b}|=\sqrt{ b_{x}^2+b_{y}^2 } 。

从而我们可以通过点积求得两个向量的夹角 θ\theta :

cos⁡θ=a⃗⋅b⃗∣a⃗∣∣b⃗∣=axbx+aybyax2+ay2bx2+by2\begin{align} \cos \theta & = \frac{\vec{a}\cdot \vec{b}}{|\vec{a}||\vec{b}|} \\ & = \frac{a_{x}b_{x}+a_{y}b_{y}}{\sqrt{ a_{x}^2+a_{y}^2 }\sqrt{ b_{x}^2+b_{y}^2 }} \end{align}

向量点乘的应用

余弦定理

通过点积,我们可以快速地建立起任意三角形边和角的关系。

假设有任意三角形 ABC 。则有:

AB⃗=CB⃗−CA⃗\vec{AB} = \vec{CB}-\vec{CA}

将向量 AB⃗\vec{AB} 与自己点积,有:

AB⃗⋅AB⃗=(CB⃗−CA⃗)⋅(CB⃗−CA⃗)=CB⃗⋅CB⃗+CA⃗⋅CA⃗−2CA⃗⋅CB⃗\begin{align} \vec{AB}\cdot \vec{AB} & = (\vec{CB}-\vec{CA})\cdot(\vec{CB}-\vec{CA}) \\ & =\vec{CB}\cdot \vec{CB} + \vec{CA}\cdot \vec{CA} - 2\vec{CA}\cdot \vec{CB} \end{align}

代入点积的几何表示,则有:

∣AB∣2=∣CA∣2+∣CB∣2−2∣CA∣∣CB∣cos⁡C|AB|^2=|CA|^2+|CB|^2-2|CA||CB|\cos C

令三角形三边为 a 、 b 、 c ,则可简写为:

c2=a2+b2−2abcos⁡Cc^2 = a^2+b^2-2ab\cos C

这个等式表明:

  • 如果能确定 a 、 b 、 c 三条边,角 C 的大小就可以确定(SSS)
  • 如果能确定 a 、 b 两条边与角 C 的大小,第三条边 c 就能确定 (SAS)
  • 如果确定 c 的大小与角 C 的大小,以及 a 、 b 其中之一的大小,剩余的第三条边构成一元二次方程,可能有两个解(即 SSA 不能唯一确定一个三角形)

明显对于角 A 、 角 B 也能有对应的等式成立。这个定理被称为余弦定理。

正弦定理

除了余弦定理外,三角形中还有正弦定理。正弦定理为:

sin⁡Aa=sin⁡Bb=sin⁡Cc\frac{\sin A}{a}=\frac{\sin B}{b}=\frac{\sin C}{c}

这个定理通过初中知识也能轻易地证明,过程留给各位自己证明。(提示,可以通过两边与夹角的正弦值得到三角形的面积。)

本节练习
  1. 已知向量 a⃗=(3,4)\vec{a}=(3, 4),b⃗=(1,−2)\vec{b}=(1, -2),求 a⃗⋅b⃗\vec{a}\cdot\vec{b} 。
  2. 求向量 a⃗=(3,4)\vec{a}=(3, 4) 的长度 ∣a⃗∣|\vec{a}| 。
  3. 思考:如果在直角三角形里应用余弦定理,会得出什么结论?应用正弦定理呢?

圆幂定理

设平面有一个半径为 RR 、圆心为 OO 的圆。对于过平面上任一点 PP 的任意一条直线,设它与圆交于两点 AA 和 BB (切点视为重合的二点),恒有 PA⃗⋅PB⃗=OP⃗2−R2\vec{PA} \cdot \vec{PB} = \vec{OP}^2 - R^2 。这就是圆幂定理。

在初中阶段,圆幂定理被拆分为相交弦定理、切线定理、切割线定理,三个定理分别需要通过不同的步骤证明。实际上,我们可以使用向量,用统一的步骤证明三个定理。

设直线的方向向量(与直线同一方向的长度为1的向量)为 v⃗\vec{v} 。从点 PP 到直线上任意一点的向量可表示为 tv⃗t\vec{v} ,其中 tt 为任意实数,其绝对值即为由 PP 点到该点的长度。

PA⃗\vec{PA} 和 PB⃗\vec{PB} 分别可以表示为 t1v⃗t_1 \vec{v} , t2v⃗t_2 \vec{v} 。其中 t1t_{1} 与 t2t_{2} 即为有向线段 PA⃗\vec{PA} 与 PB⃗\vec{PB} 的长度。(如果 t1t_{1} 为负,代表 PA⃗\vec{PA} 与 v⃗\vec{v} 方向相反, t2t_{2} 同理。)

由于 v⃗⋅v⃗=1\vec{v}\cdot \vec{v}=1 ,因此有 PA⃗⋅PB⃗=t1t2\vec{PA} \cdot \vec{PB} = t_1 t_2 。

另一方面,由圆的定义,在圆上任取一点 XX ,满足圆的向量方程 ∣OX⃗∣2=R2|\vec{OX}|^2 = R^2 。对于点 AA 和 BB ,它们满足:

∣OA⃗∣2=R2,∣OB⃗∣2=R2|\vec{OA}|^2 = R^2,\quad |\vec{OB}|^2 = R^2

对于 AA 点,由于 OA⃗=OP⃗+PA⃗\vec{OA}=\vec{OP}+\vec{PA} ,代入得:

∣OP⃗+t1v⃗∣2=R2|\vec{OP} + t_1 \vec{v}|^2 = R^2

展开得:

OP⃗2+2t1(OP⃗⋅v⃗)+t12=R2\vec{OP}^2 + 2t_1 (\vec{OP} \cdot \vec{v}) + t_1^2 = R^2

整理为:

t12+2(OP⃗⋅v⃗)t1+(OP⃗2−R2)=0t_1^2 + 2 (\vec{OP} \cdot \vec{v}) t_1 + (\vec{OP}^2 - R^2) = 0

对于给定的点 OO 、点 PP 与半径 RR , OP⃗⋅v⃗\vec{OP}\cdot \vec{v} 与 OP⃗2−R2\vec{OP}^2-R^2 都是常数。因此这是一个关于 t1t_{1} 的一元二次方程。

同理,将点 BB 代入也会得到完全相同的二次方程,因此 t1t_1 和 t2t_2 正是这个二次方程的两个根。

根据韦达定理,两根之积为:

t1t2=OP⃗2−R2t_1 t_2 = \vec{OP}^2 - R^2

由于 PA⃗⋅PB⃗=t1t2\vec{PA} \cdot \vec{PB} = t_1 t_2 ,我们便得到了圆幂定理的表达式:

PA⃗⋅PB⃗=OP⃗2−R2\boxed{\vec{PA} \cdot \vec{PB} = \vec{OP}^2 - R^2}

这个推导对 PP 的位置没有任何限制:

  • PP 在圆内: t1t_1 和 t2t_2 符号相反,乘积为负,对应相交弦定理。
  • PP 在圆外: t1t_1 和 t2t_2 符号相同,乘积为正,对应割线定理。
  • PP 在圆上: t1t_{1} 与 t2t_{2} 中必有一个为零,乘积为零,点 PP 必定与点 AA 或点 BB 重合。
  • 直线与圆相切 : t1=t2t_{1}=t_{2} ,二次方程有重根,切线长 t=OP⃗2−R2t = \sqrt{\vec{OP}^2 - R^2} ,对应切割线定理。

反向引用

Loading comments...