1、拓扑学是把那些很朴素但又很基本的图形的集和直观性质,进行数学化的结果。在漫长的历史过程中,人们用很多种数学方法来表达这种几何图形的直观性质,直到康托搞出了集合论之后,以集合论为基础,配之以映射概念,拓扑学有了根本性的发展。 人们对数学的不断深入,是沿着这样的线路发展的:数字-算术-欧氏几何-代数-函数-数学分析(微积分) ,至此其实都可以说是对数的研究,并在 3 百年内发挥到了很复杂的程度。而集合概念的提出和运用,则从本质上改变了数学的内涵,即跳出了“数”的框框,而进入以各种抽象事物为研究对象的领域。当然, “数”是属于这些抽象事物之一。 笛卡尔创立的解析几何,让数字和几何结合了在一起,可以用
2、代数的方法来求解几何问题。现在用集合概念来看几何问题,那将大大扩展了几何学的内容,将点、直线、平面、空间、二次曲线/曲面都当作集合,可以说把传统的几何学、代数和分析学都统一在一个框架里了。所以在现代的拓扑教材中,开头都是论述“集合论”。集合是一个十分抽象的概念,可以套用到各种具体的情况中。其实集合这个概念本来就是把世间几乎所有的事物的共性给抽象了出来,所以集合的所有规律,都适用于几乎所有的世间事物。人们从各种现实事物中抽象出“集和”概念,然后运用到其他新的事物中,就可以对新事物有了完善的理解。就如LostAbaddon 所说过的:集合就像是 OO 编程(面向对象编程)中的基础类,甚至是抽象类,
3、是所有派生类的根。所有派生类都具有基础类的一切特征。同样,集和就是所有那些具有共性的事物堆的“抽象类”,所有可以合在一起考虑的事物堆,都可以套用“集合”的一切规律。 当我们了解了集合这个抽象概念的规律后,再回过头用集合的观点来审视从前的数的观点,会很自然地发现集和概念中的规律,有很多是数的规律的推广。其实应该反过来说,人们在考虑集和的规律的时候,往往是把数,或者其他具体事物的相关规律进行推广而得到的。体现在拓扑学中,最抢眼的就是对传统几何学中“距离”概念的推广。 说到了集和,就不得不说另一个相关的概念:映射。映射概念也是一个具有目前看来最广泛的概念,是“函数” 概念的最直接的推广。在函数概念中
4、,我们说函数是一个法则,指定了与一个数字或者一组数字,所对应的另一个数字。注意,这里的研究对象都是“数字”,不管是自然数、实数还是复数。而映射则把研究对象从“数”扩展到了“一切事物”:映射也是一个法则,将一个或者一组事物,对应到另一个事物。这些事物可以是数字,也可以是人、班级、电脑、钞票或者是人际关系这样回头看看函数这个概念,就是映射概念中的一个特殊的情况:仅仅考虑数字关系的法则。 映射是一个法则,是一个桥梁,连接了两堆事物,正好比函数这个法则连接了两堆数字:自变量数字堆,和应变量数字堆。这两堆数字或者两堆事物正好可以用集和来描述,所以我们可以说,映射是联系两个集和的一套法则,描述了一个集和中
5、的事物,是如何与另一个集和中的事物相关联的。比如有两个集和:集和 1=所有联想电脑,集和 2=某商场中所有商品的价格列表。那么我们可以建立一个映射,让每一个集和 1 中的事物(每一台联想电脑) ,都有一个集和 2 中的事物(商场中出现的一个价格)所对应。这个电脑-价格映射,往往是一个索引表格:左端是自变量(电脑型号) ,右端是应变量(价格) ,中间是一条连线(一般表格中不出现连线,不过可以想像有这么根线) 。这就是一个很形象的映射的表现形式,而教材中出现的映射,都是这样子的:两个集和(两团土豆状区域) ,之间用若干根连线相连,就是一个很不规范的表格而已。 所以说,集和推广了“数” 的概念,映射
6、推广了“ 数与数之间关系 ”的概念,两者结合起来,就把数学推广到了很广泛的程度,远远超出“数”的框框。集和就像是 OO 编程(面向对象编程)中的基础类,甚至是抽象类,是所有派生类的根。所有派生类都具有基础类的一切特征。同样,集和就是所有那些具有共性的事物堆的“抽象类”,所有可以合在一起考虑的事物堆,都可以套用“集和”的一切规律。 集和是一堆事物,一堆东西,可以是任何东西。但我们把乱七八糟的一系列东西放在一起,虽然也是一个集和,但这样的集和是难以找寻规律的。我们常常把一些具有共性的事物和东东放在一起形成一个特定的集和,是因为这样的话,我们就可以创建一个针对这个共性的映射,将这个特定集和与另一个特
7、定集和相联系。而对乱七八糟的集和来说,创建这样的映射是一件痛苦的事情,而且也没啥用。比如我们可以把“杯子、厉风、洞庭湖、某股票价格、英语”放在一起形成一个乱七八糟的集和,然而这个集和我们几乎无法使用,仅仅表达了一堆东西的存在而已。而如果我们把“厉风、CloudK、碘化亚铜、zmt0516”放在一起形成一个集和,那这个集和的每一个事物都有一个共性:是“物理吧 id”。于是可以针对这个“id”共性创建一个映射,比如映射到“id 的年龄”这个集和。所以在数学中出现的集和,基本上都是具有共性的一堆事物。因为我们考虑数学都有很强的针对性,所以集和的共性是一个十分突出的要求。 关于集和的一些简单术语。 集
8、和中的每一个事物,都叫做“元素”,也可以叫做“ 成员” 、 “点”。集和根据元素的个数,可以分为两大类:有限集和,和无限集和。前者拥有有限个数的元素,后者则有无限个元素。对于有限集和,可以用穷举法把每一个元素都列出来。而对于无限集和,无法用穷举法了,只能用描述元素共性的方式来表达了。 当一个事物是一个集和中的元素的话,我们就称该事物属于该集和。相反,我们说一个事物不属于某集和,就意味着这个事物不出现在该集和中,或者说该事物不符合该集和的共性。 一般的有用的集和都要含有一些元素,但也有不包含任何元素的集和,称作“空集”,地位相当于数字中的 0。 集和与集和之间有一定的包含关系。如果集和 A 的所
9、有元素,都是集和 B 的元素,那就称A 是 B 的子集。也就是说,集和 B 的范围涵盖了集和 A 的范围。比如集和 A 是“所有小于1 的整数”,集和 B 是“所有小于 4 的整数”,于是 A 是 B 的子集,因为 A 中每一个整数都是 B 中的元素。B 比 A 还多出 3 个元素:1、2 和 3。 但是要注意, “子集” 相当于数字中的小于等于号,比如一个集和也是它自身的子集,因为它符合子集的定义。这样一来,就可以定义两个集和相等了:如果集和 A 和 B 相互是对方的子集,那么 A 与 B 相等。就好象两个数 x 和 y,如果 xn0 的时候,|f(n)-f(n0)| 都小于 。我们在函数的
10、极限那里也看到了类似的定义,本质是一样的:一个收敛的东西,在收敛点附近,随着自变量(数列索引)不断靠近收敛点,函数值(数列值)总是一起逐渐靠近收敛点的函数值。在这里的“靠近” 的意思含有“ 值与收敛值的差越来越趋近于 0”的意思。 满足这种定义的数列和函数,具有收敛的效果。收敛意味着存在一个极限,也意味着数列和函数的值,不是处于“震荡”的状态,而是处于一种稳定的状态。比如数列1/1,1/2,1/3,.,1/n 就是收敛的。 在这里能够明显地体会到“距离”的影响。那些“ 靠近”、 “差值”字眼都是距离概念的具体表现。想像一下,如果抽掉距离概念,这些字眼将还留下什么意义:没有距离,何谓“靠近”?而
11、“差值”这个字眼则直接是实数集中距离的定义,越来越靠近,就是差值越来越小。 拓扑就是抽掉了距离概念后,为了继续维持“连续”定义而引入的一个东西。 数的连续性是以“距离” 概念为基础的。下面就要看看“ 距离 ”概念的本质含义是什么,如果找到了这些本质的东西,就能对这些东西进行合理的推广,而实现“没有距离概念也要有连续的定义”这个目标。学拓扑更重要的是要会举一反三,自己去想象一些符合要求的案例。集和的概念是抽象的,我们可以想象一些具体的东西来看看这些集和的结论是怎样用在具体事物上的,多想一些,就能多理解一些。id=“拉普拉斯”的强人曾经跟我说过,学拓扑,学微分几何,最忌画图。因为画出来的二维透视图
12、,都限制了最接近真实的想象。距离概念在简单的一维实数集上定义为坐标差的绝对值,在二维平面上定义为坐标差的平方和的开根反正是一系列坐标差的函数。所以我们的这些距离概念中,基础的内容就是坐标差,所以我们来看看一维实数集中坐标差的含义。 能够用坐标差来表示距离概念,是通过我们在实数集上,把所有实数都按照大小顺序进行了排列来实现的。如果一根数轴上的数字并不是按照大小来排列好的话,那么坐标差就完全无法体现距离概念了。再深入下去想一下的话,我们会发现,对数字进行排列,其实是对数字进行编号,编号越大的数字,排在越靠近“大”的方向。于是,距离概念其实就是编号与编号之间的差异值了。这样一来,就算我们不按照大小顺
13、序排列,我们对数字进行一个随意排列,只要对每一个数字都编好号,我们也可以对任意两个数字进行“距离计算”:距离=编号差的绝对值。 现在暂时把视角转换到集和上来,看看集和中的元素(不一定是数字了)之间是否也能以此来搞搞距离概念。 其实也一样,只要把所有元素都编个号,我们就可以定义任意两个元素之间的“距离”了。然而这个“距离” ,与现实中的距离已经有了差异,或者说集和中的“距离”,比现实中的距离概念要更广泛。 然而我们在把上面这种编号法用到二维平面上,就会发现是行不通的了。二维平面是一个集和,其中每一个元素都是一个由两个数字构成的实数对。那么我们该如何对任何一个实数对进行编号呢?编号只能从一个方向进
14、行,而二维平面是有两个坐标方向的。比如我们对(1,1)这个数对编号为 5,那么我们对(1,2)该如何编号?对(2,1)又该如何编号?无法编号!这里的根本含义是:实数对无法定义大小。比如(2,1)和(1,2)哪一个更大,哪一个更小?这说不出来的。 同样,对集和中的元素来说, “大小”是无关紧要的概念,于是“距离”也是无关紧要的概念。比如对一个集和=A,B,C,D 来说,这个集和只是罗列了四个元素,并没有说一定要按照 A-B-C-D 这个顺序排列,A,B,C,D与B,A,D,C是完全一样的集和。任何含有且仅含有这四个元素的集和,都是相等的。 于是,我们在实数集(数轴)中,把元素按照一定顺序排列的做
15、法,就是一种十分特殊的情况了。只有那种其元素本身具有大小属性的集和,才能自然地排列、编号、定义距离。在一般的集和中,无法也无必要进行这些操作。 现在回到“连续性” 的问题上来。集和中不需要定义距离概念,那么集和中可以有“连续”的概念吗?可以!为何要在集和中搞出“连续”概念呢?因为我们要把集和与几何结合起来。 数轴上的连续性,是使用距离来定义的,回顾一下那个 - 定义,就是用坐标差(距离)来定义的。而且后来所用到的“开区间”这个新的表现形式,本质上还是使用距离这个定义的。 “连续”这个概念,可以用“ 开区间 ”来定义。后面会推广“开区间”这个概念到“开集”,所以这里提前说, “连续” 概念可以用
16、“ 开集”来定义。这里我们先看看“开区间”的含义。 假设一个数字 x 小于 b,大于 a,也就是 x 位于开区间(a,b)中。如果 x 是小于等于 b,大于等于 a,那么说 x 位于闭区间a,b中。 现在给出实数集中“开集”的定义: 设实数集 R 中有一个子集 P,如果在属于子集 P 中的每一个点 x,都存在至少一个包含 x 点的开区间(a,b)是 P 的子集,那么 P 就是一个开集,并称 P 是点 x 的开领域。 这是啥意思呢? 比如(1,2)这个开区间,我们要考察这个区间内的每一个点,是否都有一个包含该点的,并且含于(1,2)区间的区间。对于像 1.2,1.4,1.75 这样的点来说,我们
17、总可以找到比这些数字稍微大以及小那么一点点,但不达到 1 以及 2 的实数作为区间,这些区间都满足“开集”的定义。 设点 x 属于(1,2)区间,那就是说 10。 2、p(x,y)=0 x=y。 3、p(x,y)=p(y,x)。 4、对于 X 的任意三个点 x,y,z,有:p(x,z)R 为: p(x,y)=1,当 x 不等于 y; p(x,y)=0,当 x 等于 y。 这是一个符合四个条件的度量定义,于是任何集和 X,与这个映射 p,都可以构成一个无聊的度量空间。 那么对于无限维的实数空间,传统距离的定义将是如何的呢? 对于一个无限维空间中的两个点 x(x1,x2,.)和 y(y1,y2,.
18、),根据距离定义,有: 距离2=(x1-y1)2 + (x2-y2)2 + 。 等号右边是一个数列,并不一定收敛。比如考虑这两个点:x 是原点,即 x=(0,0,.),y是所有坐标等于 1 的那个点:y=(1,1,.)。在一维实数集中,x 和 y 的距离=1;在平面集中,距离=根号 2;在空间集中,距离=根号 3在 n 维空间中,距离=根号 n。当 n 趋近于无穷大的时候,距离也趋近于无穷大,所以这个距离定义不是收敛的。在这个意义上说,传统距离的定义,不是一个无限维度空间的度量。 如果找到一个能够收敛的度量,那么这种无限维度的度量空间,这就是传说中的 Hilbert空间。 所以,度量是距离概念
19、的推广,是比“传统距离”更本质的一个概念,即传统距离是一种特殊的度量。有了度量,我们可以给出一个度量空间。而度量空间,与拓扑空间是有联系的,说到底,可以用度量来给出拓扑。就好比我们用距离来定义连续性一样,有了度量,我们可以描述集和的连续性,进而给出集和的拓扑。 为了说明这点,在这里先给出一个“开球邻域”的概念。 由于有了新的“距离”定义,我们可以定义出新的“几何形状”,比如“球形”。 在一个拓扑空间 X 中,一个点 x 的开球邻域,是这样的定义: r 是一个大于 0 的实数,p 是 X 的度量(一个映射),定义 N(r,x)=y|p(x,y) F是 F 的子集(F 所有聚点都在 F 内) 。
20、八、A 是空间 X 的子集,X 中含有 A 的最小的闭集,称作 A 的闭包,或者触集。子集 A的闭包是 A 与 A 的导集 A的并集。 子集 A 是闭集 A 的闭包 =A。 这里还是拿那个三个元素的集和做例子:设空间 X=a,b,c,拓扑 T=X,空集,a,a,b,a,c 。考察a 这个子集的闭包是什么。在 X 中的所有闭集,就是除了开集之外的所有子集族=空集,X,b,c,c,b。从这里可以看出,除了 X 之外,没有一个闭集含有 a 元素。所以a的闭包就是 X,而不是a本身,所以a 不是闭集。 九、空间 X 中的点 x 是闭集,也就是 x=x的闭包 对于 X-x中的任意一个点 y,存在一个 y
21、 的邻域,这个邻域不含有 x。 十、豪斯道夫空间的任意一点 x 都是空间的闭集。 这是因为豪斯道夫空间中的任意两个不同点,都各自可以找到一个开邻域,这两个开邻域交集为空集(不相交) 。 十一、稠密:空间 X 的子集 A,如果 A 的闭包为 X,则称子集 A 在 X 中是稠密的。 当子集 A 就是 X 本身的话,那就是说,X 在自身是稠密的(很无聊) 。 “稠密”意味着“ 无所不在”。说子集 A 在 X 中稠密,指的是在 X 的任何一点的任何邻近处,都存在属于稠密子集 A 的点。 比如,设 X 为实数集 R,设 Z 为有理数集。有理数就是分数。而实数集 R 中的每一个数x,都是有某个理数组成的数列(分数数列)的极限,所以 x 位于有理数集的闭包上,也就是说,实数集是有理数集的闭包。我们说,有理数集在实数集中是稠密的,在实数集 R 的每一点的任何邻近区域,都可以找到有理数集中的有理数,有理数在实数集中是“无所不在的”,甚至可以代替实数集本身,以至于从直观上看不出实数集已经被偷梁