1:芝诺的乌龟,不过是用“无限”掩盖了“有限”
这是为一本书写的前言,简单介绍了与物理密切相关的基础数学知识,主要是微积分与线性代数的篇章。
那本书没能出版,在此把部分内容奉上。
为了理解本书谈论的物理话题,读者朋友们必须具备一定的数学基础,因此我有必要在正式内容开始之前聊一聊数学。
各位读者不必对数学感到恐慌,很多人对于数学的畏惧都是源于学生时代的数学考试,这很正常,因为考试的目的就是要难倒一批人,把加减乘除变着各种花样去恶心人,达到筛选的目的。
请相信我,本书讨论数学绝不是要为难读者,而是要让各位读者在短时间理解一些必要的数学工具。请忘记你对数学有过的一切恐惧,用平和的心态去欣赏数学。
这里补充的数学都和物理有关,思维方式和数学也有一些相异之处。我们的原则是用不到的绝不多说。
大家也可以直接跳过预备章。等什么时候看不懂了,再返回预备章琢磨,不妨是一种方便快捷的理解办法。即便你只有初中数学的水平,甚至是小学数学的水平,也不妨试着读一读下面的内容。
要学好微积分和线性代数,归根结底,一切高级的数学都是微积分和线性代数的各种变化。
——丘成桐
连续,人永远追不上乌龟吗?
这一章是微积分和线性代数的篇章,大家不必对“微积分”、“线性代数”这些词语感到恐惧,它们都是简洁明了的数学,只是常见的教材强迫它们以一种晦涩的面貌示人。
接下来你需要做的仅仅只是欣赏它们,学会欣赏,是理解数学的关键一步。
让我们先来看一组数字:
3,4.5,17,0.6,-2,-11,0,-1.5,4.6
试着把它们从小到大排列:
-11,-2,-1.5,0,0.6,3,4.5,4.6,17
如果你可以完成上面这件事,那么说明你已经具备欣赏微积分的基础了。
现在让我们更进一步,用一种直观的方法表示上面这一组数的大小关系,可以把上面的每一个数都表示成一条直线上的点。
定量表示的直线其实就是数轴,数轴上的每个点都表示一个数字(更准确地说,是实数),数轴上的点和实数之间有着一一对应的关系。
直观地看,数轴就是一条直线,而直线是一个连续的图形,这里引出了一个至关重要的概念:连续。
何为连续?
对于直线,连续说的就是:直线上的任意两个点之间都有无穷多个点。
这并不难理解,因为数学中的点是没有大小之分的,它不占据任何空间,这就导致有限的空间存在着无穷多的点。
一个很好的例子就是“芝诺的乌龟”,这个故事说的是人永远无法追上乌龟。
尽管你比乌龟跑得快,但是当你跑到乌龟原本所在的位置A时,乌龟已经向前爬了一段距离,到达了位置B。
当你跑到位置B时,乌龟已经爬到了位置C。
这样重复下去,就会得到人永远追不上乌龟的悖论。
其实“人永远追不上乌龟”的结论只在有限的空间内成立,也就是说,在一段有限的空间内,人没有追上乌龟,但是只要人再多追出一段距离,就可以追上乌龟。
“芝诺的乌龟”给人一种“永远”的感觉,是因为它巧妙地利用了“无限”的元素,也就是有限的空间中的无限多的点。它让人们把注意力都放在了无限多的点上,忽略了有限的空间。
当然,这样思考的前提是“空间是连续的”。如果空间根本就不是连续的,那么“芝诺的乌龟”会更容易被破解。
至于空间究竟是否连续,这是本书后续章节要讨论的内容,而现在,为了让大家欣赏微积分,大家只需要明白数学中的直线是连续的。
函数,微积分的主角
前面说过:数轴上的点,和实数之间有着一一对应的关系。
把它和直线的连续性联系一下,可以发现实数也是连续的,任意两个实数之间都有无穷多个实数,这通常被称为实数的稠密性。比如4.5和4.6之间可以列举出无穷多的数:4.51、4.511、4.5111、……
之前我们看了一组数字,引出了一条数轴,现在我们来看两组数字:
3,4.5,17,0.6,-2,-11,0,-1.5,4.6
6,-3,7,19,0.3,-2.4,-1,9,15
这可以引出两条数轴,当然,也可以在一条数轴上把它们表示出来,不过在这里我要说的这两组数之间是有关系的,用两个数轴可以更清楚地表达这种关系。
这种关系就是两组数之间的一一对应的关系,比如第一组的3和第二组的6对应,第一组的4.5和第二组的-3对应。
如果用线把两个数轴里面相对应的数连起来,就会得到这样的图像:
这种一一对应的关系可以被称为“映射”,上面这幅图像表达的就是一个数轴到另一个数轴的映射。
其实上面这幅图像并不是表示映射的最佳方法,常用的表示方法是把两个数轴垂直放置,用一个个的点来表示映射,下面的图像已经很直观了,在此就不多作文字描述了。
映射是一种普遍存在的现象,想象一下苹果从树上掉落的场景,从苹果开始下落的那一刻开始计时,每隔0.5秒记录一次苹果下落的距离(暂且不要管这些数据的单位),这就得到了两组数:
每一时刻对应着一个下落的距离,时间和距离之间有着一种映射,可以用上面对描述方法来表示这种映射:
让我们回想一下实数的稠密性,任意两个实数之间都有无穷多个实数,所以之前只取数轴上的某几个点进行映射的方法并不完整。
让我们把数轴上的每个点之间都进行映射,就会得到一条连续的曲线图像:
这就是函数,在苹果下落的例子里,可以说:距离是关于时间的函数。
如果用x表示距离,用t表示时间,也可以说x是关于t的函数。这其实就是说x随着t的变化而变化,或者说每一个t的值都映射到一个x的值。我们可以简单地认为函数就是类似于上面那幅图里的曲线图像。
不过有些函数很特殊,比如前面的苹果下落得到的两组数,可以发现:
可以记为:
所以可以认为
也是函数,事实上它通常被称为函数的解析式,而那些曲线通常被称为函数的图像,解析式和图像都是函数的表示方法。
不过像
这样可以把图像写成一个公式的函数其实非常少,绝大多数函数都无法用如此简单的解析式来表达。
虽然大部分人一想到函数,最先想到的可能是:
这样的公式,但是面对这大千世界存在的各种函数关系,解析式其实很无力,除非我们能够掌握一种被称为“级数展开”的数学工具(后续会谈到)。
值得一提的是,我们可以用x=f(t)来表示任何函数的解析式,这里的f(t)就是在抽象地表示一个含有t的式子,可以是:
奇函数与偶函数
函数是微积分的主角,不过在我们欣赏微积分之前,最好先欣赏一下函数本身的美妙之处:
奇函数和偶函数,可以用函数图像直观表达,不过我们也可以使用函数解析式,得到令人振奋的结论。
用x=f(t)来表示任意函数的解析式,那么奇函数的特点是:
f(t)=-f(-t)
偶函数的特点是:
f(t)=f(-t)
这似乎没什么令人振奋的事情,但是,如果我们考虑一个无聊的式子:
k可以取任意值,那么,如果k=f(-t),会发生什么?
各位读者可以用奇函数和偶函数的性质去验证上图的结论,总之,我们可以得到一条重要结论:任意一个函数都能写成一个奇函数和一个偶函数之和。
那么这个结论有什么用?
对数学有所了解的读者,应该可以从下面的公式里发现妙处。当然,我也会在后续章节中介绍其中的妙处。
2:浅谈微积分,“微分方程”与“级数展开”的魅力
现在终于可以正式欣赏微积分了,因为微积分的主角是函数,微分是对函数的微分,积分也是对函数的积分。观察下面这个函数的图像,试着问自己两个问题:
在曲线上的每一点处,曲线的方向指向哪里?
曲线与横着的数轴围成的阴影部分的面积是多少?
第一个问题引出了导数,第二个问题引出了定积分。
理解“无穷小”
让我们先来看第一个问题,这其实就是在求曲线上任意一点的切线。
如果一个点沿着曲线移动,那么它的运动方向在随时变化,在它到达某个点的瞬间的移动方向就是曲线上这一点的切线方向,在这个方向上无限延伸,就得到了切线。
相应的还有割线,将曲线上的两个点用直线连起来,就得到了割线。
分别用直线连接下图中的AB、AC、AD,可以发现,另一个点离A点越近,得到的割线就越接近A点的切线。如果另一个点离A点的距离是“无穷小”,那么得到的割线就是A点的切线!
再来看一看第二个问题,如果把阴影部分竖着分割,得到一个个的矩形,把这些矩形的面积加起来就接近于阴影部分的面积。
分割得越细,得到的面积就越接近阴影部分的面积。如果每个矩形的底边的长度都是“无穷小”,那么得到的面积就是阴影部分的面积!
上面谈论的这些就是微积分的基本思想,它们都涉及到一个概念:无穷小。当“无穷小的操作”出现,割线变成了切线,折线围成的面积变成了曲线围成的面积。
那么究竟什么是无穷小?
其实很简单,无穷小就是比你能想到的任何数都要小,但不是零。没错,这是一种耍无赖的定义,不过我们只能这样定义数学中的无穷小,这涉及到过于严苛的数学,在这里就不多作讨论了。
值得一提的是,物理学中也存在着类似于无穷小的概念,这就是“普朗克尺度”,在本书的后续章节会提到它。
谈一谈“导数”
现在要把微积分的基本思想转换成具体的计算了。
一个函数x=f(t),当t增加,x也会相应地增加,如果t增加的量是无穷小,那么x增加的量也会是无穷小。
t的无穷小增加量可以表示成dt
x的无穷小增加量可以表示成dx
可以取个名字,把dt叫做t的微分,把dx叫做x的微分,d就是微分符号;dx/dt就可以表示函数x=f(t)的图像在任意一点的切线的方向,也就是函数x=f(t)的导数。
没错,可以把导数看成是两个微分的比值,导数也叫微商。
还可以用其它形式表示导数,比如x’=dx/dt,再比如f ’(t)=dx/dt。导数的形式并不重要,用哪种形式表示导数都可以,真正重要的是理解导数的思想。
至于dx/dt如何描述方向,这里有必要谈论一下三角函数。
描述方向要用数学中的角度,大部分人了解到的衡量角度的方法是“角度制”,把圆平均分成360份。在这种衡量方法中,直角是90度。
而在现代科学中使用的是“弧度制”,这种方法用角度对应的弧长与半径的比值来衡量角度,单位是rad。在这种衡量方法中,直角是π/2(只需要了解圆的周长公式,就可以轻松理解“弧度制”)。
对于角度,有一种专门的函数:三角函数。三角函数是关于角度的函数,随着角度的变化而变化,所以三角函数也可以表示方向。
常用的三角函数有三种:
它们都可以用直角三角形的某两个边长的比值来定义。导数其实就是一种正切函数,所以它可以表示曲线上某一点的切线方向。
谈一谈“定积分”
积分的数学表达也很简单,如果每个矩形的底边长度都是无穷小,那么可以用dt来表示,一个小矩形的面积就是x·dt或者是f(t)·dt。
所谓的积分就是把这些小矩形的面积加起来,∫x·dt就表示相加的结果,∫就是积分符号。如果阴影部分的范围是从t=a到t=b,那么面积(定积分)就是:
微积分最神奇的地方就在于导数和定积分之间有着巧妙的关系,它被称为微积分基本定理。
这并不难理解,x’=dx/dt也就是说dx=x’·dt,右边是不是有些眼熟?
它很像上面提到的定积分的一部分,用x’·dt替换定积分中的x·dt就可以得到:
积分符号和微分符号直接放在一起的时候可以“抵消”,比如x=f(t),那么:
把f(t)的导数表示成f'(t),由此可以得到微积分基本定理:
我们可以用简单的例子来展示微积分基本定理的正确性:
微积分的“徒子徒孙”
至此,你已经欣赏了微积分本身的大部分内容,而在物理学中,更重要的是微积分衍生出的知识:微分方程和级数展开。
物理学中的那些精妙的方程(麦克斯韦方程组、爱因斯坦场方程、狄拉克方程、……)都是微分方程。
求解这些微分方程可以得到自然界的各种函数关系(比如电荷分布与周围电场之间的函数关系、时空弯曲程度与周围物质分布之间的函数关系、……),不过这会涉及到较为复杂的数学,所以微分方程的话题在本书中就到此为止。
至于级数展开,本书已经在前面的内容中提到过这个名字,利用它可以写出任意一个函数的解析式(用级数的形式),像前面提到的x=4t2这样的解析式也可以写成级数的形式。
级数其实就是把一些数或简单的函数加起来,并且保持这一长串的式子的形式,我们通常说的都是无穷级数,要把无穷多个数或简单的函数加起来。
为了可以写出任意一个函数的解析式,可以使用两种级数:
傅里叶级数就是把无穷多个三角函数加起来,也就是说任意一个函数的图像都可以由无穷多个三角函数的图像加起来(严格地说,这里要使用的不是傅里叶级数,而是傅里叶变换)。
每一个三角函数的图像都可以看成是有着一定频率的周期性振动,所以自然界的任何函数都可以看成是由无穷多个周期性振动组成的,世间万物都在振动。
至于泰勒级数,它与十进制的表示方法很像。比如有一个数字342.56,把它用类似于泰勒级数的方法表达就是:
在这个式子里,100、10、1、0.1、0.01分别是10的2次方、1次方、0次方、-1次方、-2次方。
对于函数x=f(t),泰勒级数就是把f(t)用t的0次方、1次方、2次方、……分别乘以不同的数再加起来,至于乘的数是多少,需要用导数和高阶导数来计算。
高阶导数就是连续对一个函数求多次导数,连续求两次导数就是二阶导数,连续求三次导数就是三阶导数,以此类推。
在函数的泰勒级数表达式中,越靠右边的项被称为“高阶项”(它们的系数需要求高阶导数来得到)。
如果想用泰勒级数精确地表达一个函数的解析式,那么就需要无穷多项,但是如果我们省略高阶项,只取靠左边的一项或两项会发生什么?
可以看到我们取的项越多就越接近精确的函数图像,取八项或九项就已经非常接近精确的图像,而精确的图像是由无穷多项组成的。
你应该也发现了,很多高阶项是“无关紧要”的,我们可以只取有限的项来近似描述函数,这种“近似”在本书的后续内容中会多次出现,可以帮助我们简化很多公式的计算。
3:复数,四元数,线性代数,打开高维空间的钥匙
复数之美
如果要评选最美的数学公式,上面的公式绝对可以上榜,它就是欧拉公式,联系了数学中的五个重要数字:
0、1、π、e、i
一些读者可能会对e和i感到陌生,e是自然常数,约等于2.71828,它在描述事物的扩张或衰减的时候非常有用。
当n趋近于无穷大时,下面这个式子就是自然常数e。
i则是上面五个数字中最特殊的数字,前面说过每一个实数都对应着数轴上的一个点。
0、1、π、e都可以在数轴上找到对应的点,但是i在数轴上没有对应的点,因为它根本就不是实数,而是虚数。
虚数中的i,就相当于实数中的1,被称为虚数单位,有着奇怪的运算法则:
我们之前说的数轴其实是实数轴,相应的还有虚数轴,所以i其实对应着虚数轴上的一个点,至于虚数轴上的其它的点,则是i的倍数。
其实把每一个实数都乘以i就会得到虚数轴上的所有虚数,比如2i、3.5i、-1.7i。
如果把实数轴和虚数轴垂直放置,就会形成复平面,复平面上的每一个点都对应着一个复数,可以看成是由实数和虚数复合而成的数。
复数可以表示成2+3i这样的形式,在这个例子里,2和3分别是复数的实部和虚部。复数的加减乘除,可以简单地按照实数的加减乘除来处理,只需要注意i2= -1,比如:
(2+3i)+(4+6i)= 6+9i
(2+3i) ×(4+6i)= -10+24i
至于为何要提出虚数和复数,这要从一元三次方程的求解开始讨论,本书不再展开说明,有兴趣的读者可以参阅书籍《云端脚下:从一元二次方程到规范场论》。
至于复数的用处,最简单的就是它可以把泰勒级数推广到罗朗级数,并且统一前面提到的罗朗级数和傅里叶级数,在复数的视角下,它们是同一种级数。
另外,复数在量子力学中随处可见,同时也是自动控制技术、信号处理的基础。
四元数
复数确实比实数更加复杂,但它还不是最复杂的数,在复数之后还有四元数,有i、j、k这三个特殊的“数”,它们满足的关系是:
对于大部分读者来说,上面的式子中ij= -ji应该是最奇特的式子之一,它违反了乘法交换律。
其实在现代数学和物理学中经常会出现这种情况,因为这些“乘法”并不是我们熟悉的“多个加法的简化”。
四元数的具体例子是5+8i+4j+7k、7+3i+2j+1k,由四项组成,所以叫四元数,所以复数也可以被称为二元数。
四元数可以看成是由两部分组成的,以5+8i+4j+7k为例子,5被称为标量,8i+4j+7k被称为矢量。
四元数的矢量部分用于描述物体的旋转,这目前是四元数最大的用途。
每当乘以i(或j、k),就相当于某个物体绕着某个转轴旋转了90度,乘以i2就相当于连续旋转了2个90度,也就是180度,方向与原先相反,这也就是的意义。
上面违反乘法交换律的式子也是由于这种旋转造成的,具体的细节需要读者具备高超的空间想象能力,本书不再讨论。
矢量
四元数的矢量部分可以被分离出来,形成一门单独的学问:矢量(也叫向量)。
这种矢量和四元数的矢量部分并不相同,它不是用来描述旋转的,它可以被简单理解成“有大小和方向的量”。
可以用8i+4j+7k来描述一个矢量,也可以用(8,4,7)来描述这个矢量。我们生活的空间是三维空间,有三个维度,可以用长方体来理解这三个维度:长、宽、高。
取一个长方体的三条棱,这三条棱分别代表长方体的长、宽、高,将这三条棱的线段无限延长得到三条直线,让这三条直线交汇于一点,如果这三条直线是三个数轴,并且交汇的点在三个数轴上对应的数都是0,我们就得到了三维直角坐标系。
这三个数轴被叫做坐标轴,坐标轴的名字通常被依次命名为x轴、y轴、z轴,交汇的点被称为坐标原点。
对于8i+4j+7k这样的矢量,i表示x轴的方向、j表示y轴的方向、k表示z轴的方向。
可以把这个矢量像下图一样放到三维直角坐标系中,这个矢量从坐标原点指向另一个点,另一个点在x轴、y轴、z轴的投影对应的数分别是8、4、7,是这个点的坐标,也是这个矢量的坐标。
(8,4,7)是一种更加简洁的表示方法,只需用括号里的三个数就能表示三维空间中的一个矢量。
类似地,(8,4)可以表示二维空间中的一个矢量,(8,4,7,5)可以表示四维空间中的一个矢量(这里说的四维空间是数学中的概念,与相对论中的四维时空不一样),(8,4,7,5,9)可以表示五维空间中的一个矢量,……
按这种方法,我们可以表示n维空间的矢量。大部分读者可能觉得高维空间出现得太草率,但其实高维空间本身就不是多么难以理解的概念。
当然,如果你非要直观地想象出高维空间,那确实很困难,可以说是几乎不可能的事。
跨越境界的“壁垒”
数学最基本的思想就是“以数解形,以形助数”,“数”是抽象的,“形”是直观的。
当我们最开始理解某个数学概念时,往往需要直观的“形”去辅助,然后我们要理解抽象的“数”与直观的“形”之间的联系。
当我们明白这些联系之后,就可以完全借助抽象的“数”去看待数学问题,抽象的“数”变成了直观的“数”,然后我们就可以用直观的“数”去推广某个数学概念。
推广之后的“数”依然是直观的“数”,但是对应的“形”已经成了抽象的“形”,这意味着我们的思维水平已经达到了直观的形象思维望尘莫及的地步,我们成功跨越了数学境界的“壁垒”。
达到新的境界,就要使用新的思维,用别人看来抽象(在你看来直观)的“数”去理解数学概念。
线性代数
但愿你已经能接受用坐标去表示n维空间的矢量的方法,如果你真的做到了,那么我们终于可以欣赏线性代数了。
在本章的最开头,我们提到了直线,直线上有无穷多的点,或者说直线是由无穷多个点组成的。
以此类推,三维空间、四维空间、五维空间、六维空间、……、n维空间都是由无穷多个点组成的。
真正重要的是:如何表示不同空间中的无穷多的点?
以此类推,n个实数就可以表示n维空间中的所有点。
不过这里还有一个小问题,矢量和点的表示方法是一样的,还需要区分矢量和点吗?
答案是不需要。
前面只是说可以把矢量简单理解成“有大小和方向的量”,这并不是说矢量就是“有大小和方向的量”!
线性代数中的矢量其实就是点,我们之前提到的一维空间、二维空间、……、n维空间其实都是线性空间,我们可以说无穷多个点组成了n维空间,也可以说无穷多个矢量组成了n维空间。
用偏向于线性代数的话说就是:无穷多个矢量组成了线性空间,所以线性空间也被称为矢量空间、向量空间。
线性代数讨论的是普遍的n维线性空间,在数学中,任意维度的线性空间都没有特别之处,所以高维空间在数学中没有任何神秘感可言。
对于初学者来说这确实是抽象的内容,或许直接使用高维空间处理具体的数学问题会更容易消除初学者对高维空间的神秘感,这同时也可以解答困扰很多人的问题:
高维空间到底有什么用?
讲一点数学4:如何把老鼠放到高维空间?深度解析“老鼠试药”
高维空间存在吗?
我们要知道,高维空间是人类发明的数学工具,是否存在高维空间的问题没有意义。
有意义的问题是:高维空间到底有什么用?
把老鼠放到“高维空间”
有一个经典的“老鼠试药问题”:
在1000瓶药中,混有一瓶毒药,毒药会在吃下的一天之后发作。
用老鼠试药,如果要在一天之后就找出毒药,请问最少需要多少只老鼠?
这个问题应该已经“烂大街”了,最优解法(二进制编码)早就被传开了,不过似乎没人提及这个问题与高维空间的关系。
不要觉得高维空间只是数学家的臆想,接下来我将展示:把老鼠放到高维空间的方法。
回到“老鼠试药问题”,1000瓶药太多了,为了方便理解,我把1000瓶药改成24瓶药。
想找到24瓶药中混有的1瓶毒药,最少需要多少只老鼠?
(1)最简单的想法是用23只老鼠,一只老鼠吃一瓶药,如果有老鼠中毒,那中毒的老鼠吃的药就是毒药,如果没有老鼠中毒,那没被吃的药就是毒药。
(2)稍微巧妙一点的方法是把24瓶药排成4行6列的方阵,用3只老鼠分别吃前3行的药,再用5只老鼠分别吃前5列的药。一天之后就可以知道毒药所在的行和列,这就找到了毒药,只需要8只老鼠。
(3)更巧妙的方法是是把24瓶药排成4行3列2层的立体方阵,用3只老鼠分别吃前3行的药,再用2只老鼠分别吃前2列的药,再用1只老鼠吃1层的药,一天之后就可以知道毒药所在的行、列、层,这就找到了毒药,只需要6只老鼠。
也就是说把24瓶药在更高维的空间中排列,就可以用更少的老鼠去试药。
已经可以确定最少需要用5只老鼠,但是还要给出具体的操作方法。
我们生活的世界是三维空间,我们不可能真的把24瓶药在四维空间、五维空间中排列,但是我们可以用前面提到的表示n维空间中的点的方法去达到相同的效果!
把24瓶药在二维空间中排列时,相当于给了每一瓶药一个二维坐标,每只老鼠吃的药都是在坐标中的相同位置有着相同数字的药。
(0,0) (0,1) (0,2) (0,3)
(1,0) (1,1) (1,2) (1,3)
(2,0) (2,1) (2,2) (2,3)
(3,0) (3,1) (3,2) (3,3)
(4,0) (4,1) (4,2) (4,3)
(5,0) (5,1) (5,2) (5,3)
把24瓶药在五维空间中排列,相当于给了每一瓶药一个五维坐标,每只老鼠吃的药也都是在坐标中的相同位置有着相同数字的药。
(0,0,0,0,0) (0,0,0,0,1)
(0,0,0,1,0) (0,0,0,1,1)
(0,0,1,0,0) (0,0,1,0,1)
(0,0,1,1,0) (0,0,1,1,1)
(0,1,0,0,0) (0,1,0,0,1)
(0,1,0,1,0) (0,1,0,1,1)
(0,1,1,0,0) (0,1,1,0,1)
(0,1,1,1,0) (0,1,1,1,1)
(1,0,0,0,0) (1,0,0,0,1)
(1,0,0,1,0) (1,0,0,1,1)
(1,0,1,0,0) (1,0,1,0,1)
(1,0,1,1,0) (1,0,1,1,1)
这种五维坐标非常像二进制编码(只用0和1编码),计算机中的数据都是用二进制编码存储的。
实际上,二进制编码本身就是特殊的高维空间坐标,所以从某种意义上说,计算机中的数据都存放在高维空间中。
类似的东西还有电话号码、门牌号、身份证号、邮政编码、……,所有的号码都是高维空间的坐标,对应着高维空间的矢量。没错,高维空间在实际生活中早就被用滥了,身为21世纪的人,听到“高维空间”实在没必要大惊小怪。
浅谈线性代数
消除了高维空间的神秘感,才能真正欣赏线性代数。前面说过微积分的主角是函数,在这里要说:线性代数的主角是矢量。
正如前面所说,无穷多个矢量组成了线性空间,而线性代数的所有故事都是在线性空间中发生的。
线性空间的严格定义需要用到矢量的8条运算定律,这8条运算定律其实是鉴别矢量用的,满足这8条运算定律的东西就是矢量。
“有大小和方向的量”正好满足这8条运算定律,所以可以看成是矢量。
神奇的地方在于一些函数也满足这8条运算定律,所以某些函数也是矢量(量子力学中的波函数也是希尔伯特空间中的矢量,听不懂这句话没关系,你只需要知道这对理解量子力学很重要),这是把微积分和线性代数结合起来的关键思想,不过对此要点到为止了,因为它远远超出了本书的范围。
至此,不必对“矢量”这个概念感到陌生,我们依旧把它当成我们熟悉的矢量就行了,对于线性空间也是一样,我们只需要知道“无穷多个矢量组成了线性空间”就行了。
还是要从一个具体的矢量谈起,比如(8,4,7),更好的表示方法是8i+4j+7k,这是三维线性空间中的一个矢量,i、j、k是三维线性空间的一组“基”,如果把矢量看成是有向线段,那么i、j、k就是三个长度为1的矢量。
每一种坐标系都有自己的“基”,最常见的是直角坐标系,它的“基”是相互垂直的,此时的i、j、k可以表示成i =(1,0,0),j =(0,1,0),k =(0,0,1)。
n维线性空间有n个“基”,二维直角坐标系就只有两个基:i、j,可以表示成i =(1,0),j =(0,1),就像下图展示的一样。
相应的还有斜角坐标系,二维斜角坐标系的“基”可以表示成i =(1,0),j =(0.5,0.866),就像上图展示的一样。
大部分读者可能都对斜角坐标系感到陌生,其实不必诧异,坐标轴本来就不是非得垂直,我们通常使用直角坐标系只是因为它简单而已。
在这里必须谈论斜角坐标系是因为它是理解广义相对论的基础,一个斜角坐标系有两种“基”:
上面展示的二维斜角坐标系的“基”其实只是“协变基”,具体的内容有些复杂,本书不再讨论,有兴趣的读者可以参阅书籍《理性力学》。
线性代数默认了一种直角坐标系的“背景”,表示上面的各种“基”的时候都是用那些“基”在直角坐标系中的坐标表示的。
一个矢量8i+4j+7k由两部分组成:“基”和坐标,“基”就是i、j、k,坐标是(8,4,7),上面展示了“基”是用直角坐标系中的坐标表示的。
这是比较绕的内容,在描述矢量时,要选取一个具体的坐标系,矢量的坐标是矢量在具体的坐标系中的坐标,“基”是具体的坐标系的“基”,“基”的坐标是在默认的直角坐标系中的坐标。
但愿各位读者可以理解上面的内容,笔者已经尽力了。