向量引入
我们先看两个问题:
平移一个图形,已知其中一对对应点的坐标,其他点坐标如何变化?
结合平面直角坐标系与方格纸,两个问题不难求解。
- 假设平移前一个点坐标 (x0,y0) ,平移后为 (x0′,y0′) ,那图形上原本为 (x1,y1) 的点平移后会变为 (x1+(x0′−x0),y1+(y0′−y0)) 。即新坐标为原坐标加上对应点平移前后坐标的差值。
- 中点的坐标为 (2x1+x2,2y1+y2) ,即两端点坐标的平均值。
这两个问题似乎都对 x 坐标与 y 坐标都做一些批量的相同操作,我们会非常感性地引入”坐标的差值”、”坐标的平均值”等概念。
但这样引入并不严谨。“坐标的差值”是什么,点的坐标又为什么可以加上这个“坐标的差值”?“坐标的平均值”需要两个坐标相加然后除以二,那“两个坐标相加”又会得到什么?
第一个问题似乎还可以继续辩——坐标的差值就是平移所带来的坐标变化,点的原坐标加上这个平移带来的变化,就是平移后点的坐标。但这依然无法解释第二个问题——为什么两个坐标可以相加?
这个解释其实很好,坐标的差值,就是平移这个动作所带来的坐标变化。从平移前的 A 点到平移后的 A′ 点,整个平移操作的信息都蕴含在了这坐标的差值中,无论是平移的方向还是平移的距离都能通过这个“坐标的差值”来解释。
那么,我们就往前走一步,将这含糊不清的”坐标变化“给个名字——向量。向量可以具象化为平面上的一个箭头——从平移前的点指向平移后的点。
向量是一个既有大小,又有方向的量。一个二维向量可以用两个实数组成的数对 v=(x,y) 表示。
向量所代表的这个箭头,只要保持大小和方向不变,从平面上哪一个点出发都没关系。这很好理解:不管从哪个点出发,向量起点到向量终点都可以用同一次平移变换得到。代表同一个平移变换的向量,自然是同一个向量。
聪明的同学也能发现了,向量用 (x,y) 表示,点的坐标也能用 (x,y) 表示,那这两者似乎关系密切呀?
是的,平面上任何一个点 P(x,y) ,都能构造出一个从原点指向 P 的向量 v ,这个向量的数对表示正好与点的坐标相同 v=(x,y) 。如此一来,一个点的坐标可以唯一对应一个向量,一个向量又可以唯一对应一个点的坐标。不同点的坐标不可能对应同一个向量,不同向量也不可能对应同一个点的坐标。
在我们的理解中,点的坐标更像是一个锚点——他是用来定位的,代表一个点的位置。点是几何对象,无法定义关于点的运算,自然也很难说我们能将两个点的坐标进行加减乘除。所以一开始我们的问题是有道理的,两个点相加相减确实不能出来一些什么东西。
但向量不一样。接下来我们来引入定义在向量上的运算。能运算的向量,比不能运算的坐标好用得多。
向量的加减
向量加法与减法
上面我们说了,一个向量可以代表一个平移动作,不错。
那我们来考虑给一个图形连续两个平移,他对应点最终的坐标会如何变化?
可以看出,两个连续的平移,坐标的变化相当于两次平移变化的相加。
而另一方面,两次平移最后得到的图形位置,我们可以通过一次总的平移来得到。而这一次总的平移,其对应的向量正好等于上面求出的两次平移对应的向量坐标分别相加。
我们可以更进一步了——直接定义,将两个向量的坐标分别相加,得出来总的向量,这个过程叫做向量的加法。向量是可以相加的!
向量 v1=(x1,y1) 与向量 v2=(x2,y2) 相加得到 v=v1+v2 ,有 v=(x1+x2,y1+y2) 。
仿照着实数的减法,我们也可以定义向量的减法为向量加法的逆运算。已知有向量 v1=(x1,y1) ,与另一个向量 v2 相加得到 v3=v1+v2=(x3,y3) ,那这个向量 v2 是多少?
容易得到向量减法: v2=v3−v1=(x3−x1,y3−y1) 。
对坐标加减的解释
如此一来,我们便可以用向量的加减来解释第一个问题了:“坐标的差值”是什么,点的坐标又为什么可以加上这个“坐标的差值”?
由于点的坐标不可运算,我们可以用可运算的向量来完全代替点的坐标。一个点的坐标总会对应一个向量,不同点的坐标对应的向量总是不同的。
首先我们所引入的“坐标的差值”,实际上就是代表这个平移操作的向量。点平移前的坐标对应一个向量 p=(xp,yp) ,平移后的坐标对应另一个向量 p′=(xp′,yp′) 。一个点从原点经过 p 平移到了点 P ,再经过一次平移后到了点 P‘ ,那中间这次平移对应的向量,自然是 v=p′−p 了。
而点的坐标对应一个向量,点的坐标加上这个“坐标的差值”,实际上就是向量相加。一个点从原点平移到原图形上的点 Q 后,再经过平移 v 到新图形上的点 Q‘ ,那这个新的坐标对应的向量自然也是两个向量相加 q′=q+v 了。
这时我们就发现了,原来我们一开始感性引入的那些概念,实质就是一些对向量的运算!这样那些原本很难讲清的对坐标的加减也就都说得通了。
平行四边形与三角形
再看回方格纸,不难发现,将两个向量首尾相接,从第一个向量起点指向第二个向量终点,就是两个向量相加得到的向量。这也很好理解,一个向量可以代表一个点从向量起点平移到向量终点,那连续两次平移最后不就是平移到第二个向量的终点了。
这时图像形成一个三角形,因此称这种规律为向量加法的三角形法则。
这种解释下,连续多个向量相加在几何上会变的非常直观——只不过是将多个向量首尾相连,结果就是从第一个向量的起点指向最后一个向量的终点。
而另一方面,如果将相加的两个向量起点重叠,那相加得到的向量刚好就是这两个向量张成的平行四边形的对角线。用平行四边形表示可能可以更好地理解速度的合成和力的合成——速度和力也是向量!
这时图像形成平行四边形,因此这种规律称为向量加法的平行四边形法则。
仔细观察一下不难发现,这里的向量加法的平行四边形法则与上面的三角形法则是完全等价的表述——向量与其在平行四边形上对边的向量方向相同、大小相等,是同一个向量。
- 已知向量 a=(3,2),b=(−1,4),计算 a+b ,并在平面直角坐标系上画出三个向量。
- 已知向量 u=(5,−3),v=(2,7),计算 u−v ,并在平面直角坐标系上画出三个向量。
向量的数乘
很好,我们已经能接受向量这个概念与向量相加了。那两个相同的向量相加会怎么样?
很明显,相加后得到的结果,方向不变,大小变成原来的两倍。如果我们有 v=(vx,vy) ,则有:
v+v=2v=(2vx,2vy)
我们也自然能得到三个、四个、以至所有正整数个相同向量相加的结果,就是方向不变,长度变为原来的 n 倍。
而由向量减法,我们可以仿照负数的定义,将减去一个向量视为加上这个向量的负一倍。即有:
u−v=u+(−1)v=u+(−v)
其中 −v 为与 v 方向相反,大小相同的向量:
−v=(−vx,−vy)
依然类似自然数域扩展到整数域,我们可以定义向量的负整数倍。同样的,还能将倍数扩展到分数倍、有理数倍、实数倍。
我们将这称为向量的数乘,即一个数量(就是我们之前理解的整数、有理数、实数等“数”)乘以一个向量的结果,还是一个向量。对于向量 v=(vx,vy) ,实数 k ,有:
kv=(kvx,kvy)
数乘得到的 kv ,方向与 v 相同,大小为 v 的 k 倍。
如果 k 是负数,方向相同的负数倍长度的意思就是方向相反的向量。这里说的“向量方向相同”更标准的说法是“向量共线”或“向量平行”。
- 已知向量 a=(2,−3),计算 2a 与 −3a 。在平面直角坐标系上画出三个向量。
- 若 kv=(−4,6) 且 v=(2,−3),求 k 。
向量加减与数乘的应用
两点确定一条直线
假设平面上有 U=(xu,yu) 、 V=(xv,yv) 两点,两点决定一条直线。这条直线上任意一点 W ,他的坐标如何用 U 、 V 两点的坐标表示?
点的坐标不能直接计算,但我们可以通过将向量的起点定在原点,将点的坐标转换为向量来计算。假设终点为 U 、 V 两点的向量分别为 u 与 v ,而终点为 W 的向量为 w 。问题转换为——这个新的向量用 u 与 v 怎么表示。
从 U 指向 V 的向量为 UV=v−u ,从 U 指向 W 的向量为 UW=w−u ,很明显这两个向量共线,即存在一个实数 t ,使得 UW=tUV 。两边代入得:
UWw−u=tUV=t(v−u)
整理一下,即得:
w=tv+(1−t)u
将向量表示变回坐标,即有点 W 的坐标为:
{xy=txv+(1−t)xu=tyv+(1−t)yu
这里一共有 x 、 y 、 t 三个变量与两个方程,自由度为 1 ,意味着这是一个一维图形。通过代入消元法用 x 来代表 t ,可以发现 y 其实是一个关于 x 的一次函数。这与一次函数的函数图像是一条直线吻合。
但是用这种形式表示一条直线,比用一次函数表示更灵活。如果要表示三维空间里的一条直线,只需要在方程组里以同样的形式加上 z 维度即可,也可以用同样的方式扩展到四维、五维甚至更高维度上。
三角形中位线
有了向量的加减与数乘,三角形中位线定理证明起来可以非常简单。
作一三角形 ABC ,以其中两边作同一起点的向量 a 与 b ,则第三边为 BA=a−b :
而回想起中位线的定义:两边中点所连成的线段。令这两个中点为 M 、 N ,则在上面的小三角形中,有向量 CM=21a 、 CN=21b ,而 NM=21a−21b 。
又有 21a−21b=21(a−b) ,即 NM=21BA 。即向量 NM 与 BA 方向相同,长度为 BA 的二分之一。由于向量的长度就是线段的长度,这意味着中位线与第三边平行,长度为第三边的二分之一。
有了向量,我们不仅可以证明中位线的性质,如果我将三角形两边的 31 点连线,或是两边 41 点连线,甚至更奇怪的比例点连线,我们都能通过类似的方法得到他的性质:与第三边平行,长度为第三边的比例值。
三角形重心位置
我们已经知道,三角形三条中线交于一点,这个点就是三角形的重心。重心位于三角形中线的三等分位置处。
这单纯用初中知识证明会比较麻烦,至少也要用到相似三角形。但如果使用向量,证明过程会变得既直观又简单。
作一三角形 ABC ,令从原点到点 A 、 B 、 C 的向量为 a=OA 、 b=OB 、 c=OC 。令 BC 、 CA 、 AB 的中点分别为 D 、 E 、 F 。
如此,中线 AD 所对应的向量应当有:
AD=OD−OA=21(b+c)−a
作 AD 上的三等分点 G1 ,使得 ∣AG1∣=32∣AD∣ 。点 G1 对应的位置向量有:
OG1=OA+AG1=OA+32AD=a+32(21(b+c)−a)=31(a+b+c)
用同样的方法,作 BE 上的三等分点 G2 ,CF 上的三等分点 G3 ,同样能得到:
⎩⎨⎧OG1OG2OG3=31(a+b+c)=31(a+b+c)=31(a+b+c)
三个向量相等,即 G1 、 G2 、 G3 三个点是同一个点。由此可得三条中线会交于一点,且这个点位于三条中线各自的三等分点上。
在三角形 ABC 中,M、N 分别是 AB、AC 边上靠近点 A 的三等分点(即 AM=31AB 、 AN=31AC )。
- 若 AB=u,AC=v,求 BC 与 MN(用 u、v 表示)。
- 说明线段 MN 与线段 BC 的位置关系与长度关系。
向量点乘
引入向量点乘
现在我们知道了有向量,还有向量相关的运算——向量加减与向量数乘。可是大家可能会这个向量数乘感到不自在——这始终是一个向量与一个实数两种不同对象之间的乘法,交换律无从谈起。那像实数可以跟实数自己相乘一样,向量能不能也跟向量相乘呢?
答案是——可以有。我们来引入一种名为点乘的向量“乘法”。
在物理中,我们学到过合外力做功的计算——力与在力的方向上的移动的距离的乘积:
W=Fs
这个公式是两个数量之间的乘积。但是我们知道,力这个物理量是有方向的,是个向量。同时,我们引入另一个向量——位移,实际上,功这个物理量,就是力与位移这两个向量的“乘积”。
实际上,移动是有方向的。我们用位移这个物理量代表了这种有方向的移动过程。
位移的方向为从移动的起点指向终点,位移的大小为从起点到终点的直线距离,用 s 表示。
我们一开始引入向量时所提到的“代表一个平移运动的向量”,实际上就是位移。
我们称,功就是力与位移这两个向量的点乘。符号表示为:
W=F⋅s
那么问题就来了:我们现在只会计算力和位移方向相同的情况。
如果力和位移的方向不同,功应该怎么计算呢?
“发明”向量点乘
我们现在完全不懂这个点乘运算应该怎么算。但通过研究他的数学性质,其实不难推理出来。
首先,对力与位移的向量同时旋转一个角度,点乘的结果不变。这个很好理解:空间上换个角度做完全相同的物理实验,结果不可能发生改变。这是因为空间上各个方向的物理定律都是一样的。
同样地,如果交换两个向量的方向,点乘的结果也不变。这也是由于空间性质导致的,我们空间镜像对称地做同样的物理实验,结果也不应该改变。
然后我们假设物体所受合外力不变,先移动一段距离然后再移动一段距离,所做的功加起来应当等于力在总的位移上做的功。若位移距离变为原来的 k 倍,最后所做的功也应该变为 k 倍。若位移方向相反(原路返回),所做的功也会变为负功。
F⋅(s1+s2)F⋅(ks)F⋅(−s)=F⋅s1+F⋅s2=k(F⋅s)=−F⋅s
这对力也是一样的。运动位移不变时,各个分力分别做功,功的总和应当等于他们的合力所做的功。力的大小变为 k 倍,所做的功也变为 k 倍。 k=−1 ,即力的方向相反,做功也应该相反。
F⋅(s1+s2)F⋅(ks)=F⋅s1+F⋅s2=k(F⋅s)
这就像是,点乘这个运算对两边的向量加法有分配律,并且与向量数乘“优先级相同”。这也是我们感觉点乘运算是一个“乘法”的原因。
我们即将发明一种叫点积的运算 a⋅b ,这个运算输入两个向量,输出一个数,我们要求这种运算拥有以下两条性质:
- 体现空间各向同性:运算结果只与两个向量的大小、夹角有关,而与向量具体方向无关
- 是个“乘法”:对两边的输入向量的加法都有分配律,这种性质叫双线性性
我们可以首先推理出,对于两个垂直的向量 a 与 b ,他们的点乘 a⋅b 性质。
由于双线性,我们将其中一个向量取反,结果应该相反:
(−a)⋅b=−(a⋅b)
而同时,即使将其中一个向量取反,他们依然是大小不变、夹角依然成 90° 的两个向量。即:
(−a)⋅b=a⋅b
如此我们可以得出唯一可行的结论:互相垂直的两个向量,他们的点乘结果必定为零。
而对于方向相同的两个向量,功的物理公式已经剧透了——点乘结果就是两个向量大小的乘积:
a⋅b=∣a∣∣b∣
接下来就很简单了。对于任意向量 a 、 b ,我们都可以将其中一个向量 a 沿平行于 b 方向与垂直于 b 方向,分解为 a⊥ 与 a∥ 。从而得到:
a⋅b=(a⊥+a∥)⋅b=a⊥⋅b+a∥⋅b=0+∣a∥∣∣b∣
而实际上,平行向量 a∥ 的长度,就是 ∣a∣cosθ 。
由此可得,对于任意向量 a 与 b ,都有:
a⋅b=∣a∣∣b∣cosθ
很明显,如果我们将 b 沿平行 a 与垂直 a 方向分解,也能得到同样的结果。
我们到这里就能解答章节开头的疑问。对于物理上不同方向的力与位移所做功,计算方式为:
W=∣F∣∣s∣cosθ然而,点乘这个运算不仅在物理上有用,在数学几何上更有大用处。我们接下来抛开物理,继续讨论点乘这个运算在数学上的作用。
点乘的坐标表示
之前我们一直在说,一个向量可以与点的坐标一一对应。实际上,如果知道两个向量的坐标表示,他们之间的点乘结果可以更快速地计算出来。
我们先来引入两个好用的向量: x 轴正方向上长度为1的向量 ex=(1,0) 与 y 轴正方向上长度为1的向量 ey=(0,1) 。我们称他们为 x 方向的单位向量与 y 方向的单位向量。
对于任意向量 a=(ax,ay) ,我们必然能用 ex 与 ey 来表示他:
a=axex+ayey
由于我们要的点乘运算有分配律,所以对于任意向量 a 与 b ,都有:
a⋅b=(axex+ayey)⋅(bxex+byey)=axbxex⋅ex+axbyex⋅ey+aybxey⋅ex+aybyey⋅ey
其中, ex⋅ex 与 ey⋅ey 为两个同向向量相点乘,结果为其长度相乘,即为 1 。 ex⋅ey 与 ey⋅ex 为两个垂直向量相点乘,结果为 0 。
如此可立刻得出:
a⋅b=axbx+ayby
我们回顾整个过程可以发现,我们推理的过程并不受限于二维空间。我们可以通过同样的方式,推理得到三维、四维甚至更高维度的向量点乘运算也是类似的计算方式。
向量长度
我们考虑一种特别的情况:两个相同的向量进行点积。由于空间上的对称性,我们不妨将这个向量旋转到 x 轴正方向上,点积的结果不变。
假设向量 a 旋转到 x 轴正方向上时,向量为 (a,0) ,其长度为 ∣a∣=a 。则应有:
a⋅a=(aex)⋅(aex)=a2(ex⋅ex)=a2
即,向量长度的平方等于它与自己的点积。
其实,用上一节得到的两个公式,也能推出相同的结果:
a⋅a=ax2+ay2=∣a∣2cos0°=∣a∣2
我们由此得到求向量 a 的长度 ∣a∣ 的方式:
∣a∣2=a⋅a=ax2+ay2
在二维空间中,这实际上就是勾股定理。直角边的长度分别为向量的横坐标与纵坐标(的绝对值),斜边为向量的长度。
但正如前面所提示的,这完全可以扩展到三维甚至更高维空间。比如在三维空间中,就有:
∣a∣2=ax2+ay2+az2
计算两个向量的夹角
通过点积的两个公式,我们可以得到一个等式:
axbx+ayby=∣a∣∣b∣cosθ
左边只与两个向量的坐标分量有关,是点积的代数表示。右边只与两个向量的大小与夹角有关,与坐标系的选取方向无关,是点积的几何表示。
如果我们已知两个向量的坐标表示 a=(ax,ay) 、 b=(bx,by) ,可知两个向量的长度分别为 ∣a∣=ax2+ay2 、 ∣b∣=bx2+by2 。
从而我们可以通过点积求得两个向量的夹角 θ :
cosθ=∣a∣∣b∣a⋅b=ax2+ay2bx2+by2axbx+ayby
余弦定理
通过点积,我们可以快速地建立起任意三角形边和角的关系。
假设有任意三角形 ABC 。则有:
AB=CB−CA
将向量 AB 与自己点积,有:
AB⋅AB=(CB−CA)⋅(CB−CA)=CB⋅CB+CA⋅CA−2CA⋅CB
代入点积的几何表示,则有:
∣AB∣2=∣CA∣2+∣CB∣2−2∣CA∣∣CB∣cosC
令三角形三边为 a 、 b 、 c ,则可简写为:
c2=a2+b2−2abcosC
这个等式表明:
- 如果能确定 a 、 b 、 c 三条边,角 C 的大小就可以确定(SSS)
- 如果能确定 a 、 b 两条边与角 C 的大小,第三条边 c 就能确定 (SAS)
- 如果确定 c 的大小与角 C 的大小,以及 a 、 b 其中之一的大小,剩余的第三条边构成一元二次方程,可能有两个解(即 SSA 不能唯一确定一个三角形)
明显对于角 A 、 角 B 也能有对应的等式成立。这个定理被称为余弦定理。
除了余弦定理外,三角形中还有正弦定理。正弦定理为:
asinA=bsinB=csinC这个定理通过初中知识也能轻易地证明,过程留给各位自己证明。(提示,可以通过两边与夹角的正弦值得到三角形的面积。)
- 已知向量 a=(3,4),b=(1,−2),求 a⋅b 。
- 求向量 a=(3,4) 的长度 ∣a∣ 。
- 思考:如果在直角三角形里应用余弦定理,会得出什么结论?应用正弦定理呢?
圆幂定理
设平面有一个半径为 R 、圆心为 O 的圆。对于过平面上任一点 P 的任意一条直线,设它与圆交于两点 A 和 B (切点视为重合的二点),恒有 PA⋅PB=OP2−R2 。这就是圆幂定理。
在初中阶段,圆幂定理被拆分为相交弦定理、切线定理、切割线定理,三个定理分别需要通过不同的步骤证明。实际上,我们可以使用向量,用统一的步骤证明三个定理。
设直线的方向向量(与直线同一方向的长度为1的向量)为 v 。从点 P 到直线上任意一点的向量可表示为 tv ,其中 t 为任意实数,其绝对值即为由 P 点到该点的长度。
PA 和 PB 分别可以表示为 t1v , t2v 。其中 t1 与 t2 即为有向线段 PA 与 PB 的长度。(如果 t1 为负,代表 PA 与 v 方向相反, t2 同理。)
由于 v⋅v=1 ,因此有 PA⋅PB=t1t2 。
另一方面,由圆的定义,在圆上任取一点 X ,满足圆的向量方程 ∣OX∣2=R2 。对于点 A 和 B ,它们满足:
∣OA∣2=R2,∣OB∣2=R2
对于 A 点,由于 OA=OP+PA ,代入得:
∣OP+t1v∣2=R2
展开得:
OP2+2t1(OP⋅v)+t12=R2
整理为:
t12+2(OP⋅v)t1+(OP2−R2)=0
对于给定的点 O 、点 P 与半径 R , OP⋅v 与 OP2−R2 都是常数。因此这是一个关于 t1 的一元二次方程。
同理,将点 B 代入也会得到完全相同的二次方程,因此 t1 和 t2 正是这个二次方程的两个根。
根据韦达定理,两根之积为:
t1t2=OP2−R2
由于 PA⋅PB=t1t2 ,我们便得到了圆幂定理的表达式:
PA⋅PB=OP2−R2
这个推导对 P 的位置没有任何限制:
- P 在圆内: t1 和 t2 符号相反,乘积为负,对应相交弦定理。
- P 在圆外: t1 和 t2 符号相同,乘积为正,对应割线定理。
- P 在圆上: t1 与 t2 中必有一个为零,乘积为零,点 P 必定与点 A 或点 B 重合。
- 直线与圆相切 : t1=t2 ,二次方程有重根,切线长 t=OP2−R2 ,对应切割线定理。