计算的边缘

做一个懂文艺的科学青年

Tag: 科普

书评:《数学:确定性的丧失》

看完这本书,忍不住写书评了。 从这本书的标题来看,它是讲数学的缺陷的。而当把这本书读完,才发现它讲的是一部数学的历史。 和一般的数学历史书不一样,这本书没有复杂的公式,没有深奥的定理,它从人类认识和理解自然这个伟大的角度讲述数学的发展、思想,以及数学和科学的关系。 看完这本书,你就会对数学的来龙去脉有一个比较全面的了解,你就会知道数学的历史并不是一帆风顺,你就会明白看似严密的数学却充满着各种各样的不稳定性。当然,这种不稳定性丝毫没有减少人们对自然、数学的热爱。 这本书还告诉了你:数学是什么。在此,就不得不提到另一本书:《什么是数学》。如果说《什么是是数学》这本书是从“自底向上”的方法向读者讲 述什么是数学,那么这本书就是用“自顶向下”的方法讲述什么是数学。就好比从飞机上鸟瞰一座宫殿,你首先被它的宏伟的气势震撼,被它精妙的布局吸引,然后 就有走进去了解它的冲动。这就是“自顶向下”的魅力,也是这本书的魅力。 看完这本书,就想把《数学分析》再重新看一遍,也想把《什么是数学》也重新看一遍。 就像书中说的: 音乐能激起或平静人的心灵,绘画能愉悦人的视觉,诗歌能激发人的感情,哲学能使思想得到满足,工程技术能改善人的物质生活,而数学则能做到所有这一些。 在看这本书的过程中,你就会发现,“数学”两个字越来越吸引人了。

日偏食

昨天,日全食扫过了长江流域,我在家(山西省阳泉市)只能看到日偏食。废话少说,先上照片: 感慨我的老套筒还是老当益壮,能和相机配合拍出不错的照片。但毕竟是8、9年前的东西了,没有赤道仪,而且严重老化,现在微调基本靠敲,可想拍摄有多困难。 还要感叹牛顿的伟大,他发现了天体运动的规律,我们才能兴致勃勃得拿着时间表等着日食的到来。正如拉普拉斯所说: 牛顿是最幸运的人,因为只有一个宇宙,而他发现了它的规律。 拍摄的一些参数: 口径:80mm 焦距:900mm 目镜:25mm GPS坐标:N 37.00, 52.37, 0.00; E 113.00, 32.31, 0.00

寻找薛定谔的蟑螂(三)

接上文 虽然薛定谔对自己的方程感到无比骄傲,但他坚持不肯接受波尔的解释。为了证明哥本哈根解释的瑕疵,他设想了一个实验:他做了一个简易的屋子,四周全部密封,只留下一个能够打开观察的窗子。屋子里有一个舒适的小强窝,里面住着一只可爱的小强。窝的外面充满了灭虫药,但窝内是安全的。通过一定的布局,这是小强有50%的可能性留在窝里,另一半的可能性跑在屋子里,当然,小强跑到屋子里后就会被灭虫药杀死。薛定谔指出:在我们打开窗子观察屋内情形之前,没法知道小强的死活。小强可能已经死了,也可能还活着。这两种可能性的叠加产生了一个态的叠加。只有当我们打开窗子观察的时候,叠加才可能成为真实的。在观察的一瞬间,波函数坍塌为其中的一个状态。在我们观察之前,这只可怜小强既是死的,又是活的,游离在生死的边缘。一只小强怎么可能既是死的,又是活的? 当然,拒绝哥本哈根解释的不止薛定谔一个人,当然还少不了爱因斯坦。随后,爱因斯坦,波多斯基和罗森一起也设想了一个实验。他们同样用可怜的小强作为他们的实验品,而且也做了一个同样的简易屋子,只不过小强窝附着在屋子的外面,可以和屋子分开。同样,这只小强有一半的可能性留在窝里,另一半的可能性跑到屋子里散步。幸运的是,这次屋子里没有灭虫药,大家也不用担心为小强的生命担忧了。在我们打开窗子观察屋子之前,我们不能确定小强到底是在屋子里还是在窝里。根据哥本哈根解释,小强既在屋子里,又在窝里。先别急着打开窗子,我们把小强的窝从屋子里取出,然后把所有出口密封,这是,我们仍不能确定小强在屋子里还是在窝里。我们把小强的窝放在一个星际飞船里,然后飞到一光年以外的那美克星。和以前一样,我们对小强的位置仍然一无所知,它既在屋子里,又在一光年以外的那美克星的窝里。此时,我们打开小窗,观察里面的情形。如果我们看到了这只可怜的小强,那么在一光年以外的窝里的小强的波函数就会立即坍塌;如果那美克星上的宇航员打开小强的窝,看到了小强在那里,那我们身边的屋子里小强的波函数就会立即坍塌。问题就来了:信息以超过光速的速度传播!这直接违背了狭义相对论。后来,同学们以他们三个人的名字命名了这个悖论:EPR悖论。 不管是薛定谔的极不虫道的实验,还是爱因斯坦等人提出的悖论,都对哥本哈根解释提出了严峻的挑战。 埃弗雷特战战兢兢地走上讲台,大家都知道他有了新的见解。埃弗雷特在黑板上画了类似一棵树的图形,他解释道:“在薛定谔的实验中,确实有两只小强,一只是死的,一只是活的,但他们都是真实存在的。他们存在在两个不同的宇宙中,当我们打开窗子观察时,宇宙就分裂了成两个版本,这两个版本其它个方面都是相同的,唯一的区别就是其中一个版本中小强跑到屋子里被毒死了,另一个版本中小强在窝里待着安然无恙。”这个解释让昆虫保护主义者稍感安慰,因为至少有一只小强是活着的。但它听起来太像科幻小说了。不,埃弗雷特继续在黑板上写着,他开始了他严密的、无懈可击的数学方程。他继续说道:“我们的宇宙在不断的劈裂着,就像一棵分叉的树,在其他宇宙中,也许盟军输掉了二战。”埃弗雷特的理论是如此的诡异,以至于有些在场的同学幻想着作一名超时空英雄,穿越到另一个宇宙拯救林肯。 研讨会的气氛越来越神秘,大家对小强的行为感到越来越迷茫。讨论还在继续,而且似乎永远也不会停止…… ——————————————————————————————– 画外音:只能写到这里了,EPR悖论以后的东西我就不懂了,等以后弄懂了继续写吧。 参考文献: 终极理论之梦 宇宙的琴弦 寻找薛定谔的猫 皇帝新脑

寻找薛定谔的蟑螂(二)

接上文: 德布罗意同学就是其中之一。他缓步走上讲台,谨慎地对大家宣布:“小强其实是波,不光小强,就连原子、电子、甚至你我在座的各位都是波。万物都是波。”真是语不惊人誓不休啊。德布罗意是富家子弟,老爸是受封的贵族,他大哥在学术界也小有名气,发过很多牛paper。他养尊处优,谈吐优雅、为人低调,同学们都没想到他会发言,而且一发言就提出这种惊人的言论。德布罗意当然也不是空手来的,他向大家展示了自己的理论,并且还有严格的数学推导。他指出:物质的波长和它的动量有关,并且还给出了具体的计算公式。很多同学被德布罗意的理论震惊了,戴维逊等人根据物质波的公式做了实验,发现实验结果完美地符合了德布罗意的理论,这下有很多人相信德布罗意是对的了。 爱因斯坦对德布罗意的发现感到满意,他还大加赞赏了德布罗意的工作。这时,同学们又安静了下来,原来是薛定谔走上了讲台。薛定谔是班上的数学委员,数学能力超强,他的出现,仿佛让大家看到了新的曙光。果不其然,他在黑板上写下了一行漂亮的方程式,接着向大家解释了他的工作:“没错,正如德布罗意同学说的那样,物质都是波;那么粒子的波是怎么随时间变化的?请看这个方程。”他详细地描述和解释了他的方程,然后他还证明了,他的方程和波恩等人的矩阵是等价的。薛定谔完美的方程和严谨的分析赢得了大多数的人的掌声,有些同学甚至认为所有的问题都解决了,研讨会可以到此结束了。但是,更大的困惑才刚刚开始。 不论是薛定谔还是德布罗意,都不明白物质的“波”到底是什么物理量,“波”到底代表什么。班里又是一片哗然,大家的思维又陷入一片混乱。波恩试着用概率来解释物质的波,他认为:物质的波并不是通常意义上的波,“它的意义仅在于:任何一点的波函数值代表了物质在那点或其附近出现的概率。”这个解释获得了很多人的认同和支持,包括海森堡。但薛定谔和德布罗意却并不愿意接受波恩的想法。争论还在继续。 波尔笑呵呵地走上讲台,全班都安静了。波尔是量子班的班主任,大家的主心骨,同学们都希望他能拨云见雾,指点迷津。“同学们”波尔开始发言了,“尽管在经典世界中,不管我们是否正在进行观察,我们认为由相互作用的粒子所构成的系统,例如钟表,都具有某种功能。而在量子世界中,观察者和系统之间存在相互作用,这种相互作用强到不能认为系统是孤立存在的。要精确地测定位置,我们就必须得使粒子的动量更加不确定,反之亦然。如果选择一个实验来测量波动性,我们就排除了粒子特性。没有实验能够同时揭示出粒子性和波动性。在经典世界当中,我们能够在时空坐标系当中精确地描述粒子的位置,并以同样的精度预言它们的行为;在量子世界中,即使是在一个’经典’的理论意义上,我们也不能……” 伴随这热烈的掌声,波尔的话讲完了。尽管很少有同学能够完全听懂和理解,他的话还是被完完整整记录了下来,奉为经典。波尔在哥本哈根大学做了很多的研究工作,所以大家都把波尔的这番话称作“哥本哈根解释”。不管薛定谔能否接受波尔的解释,大家都认为他的方程就像一块里程碑,所以大家把这个方程叫做“薛定谔方程”。 尽管一直存在着不同的声音,量子班的同学们还是根据哥本哈根解释和薛定谔方程描述了小黑屋里小强的运动:在开灯之前,小强可能在屋子里乱窜,也可能老老实实呆在自己的老窝里,小强出现的位置不能确定,既出现在这里,又出现在那里。小强出现屋子里的每一个角落,每个小强都对应着一个波,每个波(或者说是概率)都可以由薛定谔方程计算出来。当我们打开灯后,我们发现小强的确在某个地方,此时小强在其它地方的波函数就会发生坍塌,全部消失,然后就出现了我们看到的情景。 量子世界如此神秘,大家只能用实验来解释世界,却不知道它们到底是怎么回事。

寻找薛定谔的蟑螂(一)

什么是蟑螂? ———————科普开始——————— 蟑螂就是小强,下文都以小强代替蟑螂 ———————科普结束——————— 走进一间漆黑的屋子,把灯打开,你有没有发现小强惊惶地在地上乱窜? 小强同学的性格比较阴郁,喜欢待在暗处,越黑越好。所以每当到夜深人静、月黑风高的时候,小强们就会披上黑色的夜行衣,来到你的房间里为你清理垃圾。一个小昆虫,不远万里,来到你的家里为你默默的服务,这是什么精神? 当然,宇宙学院量子班的同学们也深深地被小强这种精神感动了,为此,他们专门召开了一个研讨会来学习小强精神。 量子班的同学都是很理性的,他们都喜欢刨根问底。为了深入研究小强精神,首先要了解小强的一切。“不,这是不可能的!”海森堡同学语惊四座,把手中的铅笔放下,接着说:“我们无法同时准确的知道小强的位置和动量。”一闻此言,研讨会上的同学们立刻沸腾了,质疑、嘲笑的声音不断传来。海森堡不慌不忙,咽了口唾沫,示意大家都静下来,继续说到:“如果我们想观察一只小强,我们就必须要用光来照射它,而光子是有动量的,打在小强身上就会轻微地改变小强的运动状态,这样我们就无法精确地知道它的位置了。当然,对小强如此庞大的东西来说,这种不确定的效果并不明显,但对于小小的电子,光子对其的干扰就很明显了。我们对它的速度知道的越多,对其位置知道的就越少,反之亦然。” “那这是我们的实验方法导致的嘛,如果我们提高实验精度,这种效应就不存在了。”有同学反驳到。 “当然不是,这种不确定性是所有粒子与生俱来的气质,与我们是否在观察它们无关”海森堡解释道,“事实上,有很多原子会自发得发生衰变,这正是由于有些粒子利用这种不确定性,凭空’偷’来更多的能量,越过原子核的能量壁垒,从而发生衰变。理论上,对于小强,如果你把他关在一个小盒子里(太残忍了),有朝一日,它也能借助不确定性,凭空生出足够的能量,像崂山道士一样穿墙而出。但小强太大了,根据计算,要等到这一天,恐怕得等到宇宙年龄这么久……” 研讨会上的同学们都安静了下来,仔细思考海森堡提出的理论。这时,爱因斯坦发话了:“不可能,上帝怎么会掷骰子!”。爱因斯坦是量子班的班长,成绩好,年纪大,而且发过很都影响因子很高的paper,他说话自然有一定的分量,所以马上就有很多人跟着附和。但是也有很多人坚持站在海森堡这边,比如波恩、约当和狄拉克。 海森堡这时也没有闲着,把自己的初步计算成果写在了黑板上,他主要初步计算了电子跃迁到某几个状态的概率,然后把结果做成一张表。这个初步的结果对波恩等人的鼓舞很大,他们凑在一起,用数学的方法严密地描述了海森堡的不确定性原理。用他们的方法,可以计算出电子跃迁到每个状态的概率。他们所用的数学方法及其繁琐,以至于在场没有几个人能明白其中的内容。也难怪,他们发明了一种新的方法来表示粒子的各个状态,这东西看起来就像一行行一列列的数字,他们把它叫做“矩阵”。在当时来说,没人懂矩阵运算,约当发明了一些对矩阵运算发方法,极大的帮助了波恩和狄拉克的工作,后人把这种方法叫做“约当标准型”。 波恩、约当和狄拉克迫不及待地把他们的成果向全班同学展示,当然引起了同学们的热烈讨论。有人惊叹于不确定性的神奇和波恩等人数学方法的严密,自己做了一些实验验证,实验结果和理论吻合得很好。同时,也不乏有人发出不同的声音。

可恶的I/O-Bound工作

I/O-Bound这个词实在不知道该如何翻译成中文,或许我该找本中文的操作系统来看看。它说的是这个意思: ———-科普开始———- 通常来说,一段程序的执行需要几个步骤:从存储器里取出需要操作的数字,然后进行运算,再将结果写入存储器里。就这么简单。 比如说,我们需要计算1+2=_。首先我们需要从存储器里获得1和2这两个数,然后将这两个数进行加法运算,最后再将结构3写入存储器里。 看似平凡的三个步骤,却暗藏着玄机。根据现在的处理器和存储器结构,做一个加法运算的时间大概需要1个周期,而访问一次内存需要的大概是500个周期。这是500倍的差距。这只是读写内存,而对硬盘的读写所需要的时间比内存还要多100,000倍! 程序的差异性就主要体现在它们对处理器和存储器读写的不同需求上。有些程序主要的执行时间花在了处理器的运算上,这些就是CPU-Bound的程序,而有些花在处理器读写(更一般地,输入输出,Input/Output, I/O)上,这就是I/O-Bound。 下面的图可能更形象一些: 在图中,黑色的块代表处理器在计算,浅色的块代表正在进行I/O读写。 ———-科普结束———- 下面进入正题。 这些枯燥的叙述可能还不足以点燃你对I/O-Bound的仇恨,假如它发生在你的生活中呢? 处理器的计算就好比我们办正事,而I/O读写就好比花在路上或者是排队的时间。假设你要拍毕业证了照片了,而学院的老师以管理小学生的办法要求你们明天上午9点集合,统一拍照。好吧,第二天你起晚了,到了指定的地点发现已经有一长串的队伍拍在那里了。你等啊等,不时拿出手机上会儿网,和同学聊会儿天,看看美女,再骂两句前面插队的人,在排了两个小时的队后,终于轮到你了。你刚端坐在椅子上,还想再调整一下姿势,只见闪光灯一闪,然后就听到一个似曾相识的声音:“下一个!” 拍照的时间不到一分钟,你却等了2个小时,先别急着骂街。你花在排队等待的时间只是办正事时间的120倍而已,想一想CPU同学,每时每刻都在忍受这大于500倍的I/O-Bound程序还这么任劳任怨,真是精神可嘉。只可惜CPU是老外发明的,要不然它早就获得五一劳动奖章了。 类似这样的事情每天都在发生,我们的时间,甚至生命每时每刻都在被浪费着。今天我去上海办签证,真正递送签证的时间也就只有15分钟,但我从早晨8点出门,晚上8点才回来。其他时间都花在排队买票、等车、坐车、认路上了。这个时间差距也足有48倍。 认清了I/O-Bound工作的真实面目,你一定像我一样深深地恨上它了吧。彻底摆平它是不大可能的,我们只能尽可能使它浪费的时间减小的最少。如何做到呢?先让我们来看看计算机设计者们是如何做的,因为他们也同样痛恨I/O-Bound的工作。 最土最暴力的方法就是减少I/O操作的时间,比如减少访问存储器所需要的时间。但这种提升空间毕竟有限而且成本昂贵。我们也可以这样做,下次去上海的时候就直接打的,这样就省去认路、买票、等车的时间了。这样做需要付出的代价也是极大的,可能就是你接下去几个星期就要啃馒头了。 还有一种方法就是利用时空的局限性,顺便帮别人也把事办了。计算机中的缓存(Cache)就是基于这种考虑设计的,取一个操作数的时候,顺便把其他操作数也取到了,而且以后再用到的时候就不用再花时间取了。当然,聪明的我们也在用着这种方法,只是不知道而已。你去食堂吃饭的时候,同学经常让你帮他们打包,你就在无形中减少着他们因为I/O-Bound所浪费的时间——至少,他们不用再去食堂、排队、打饭、找座位了。而且还可以为自己攒人品哦。你要是顺便再多打一份,留着晚饭吃(如果不嫌凉的话)就更像缓存的行为了。 一种最上档次方法就是同时进行多任务。对处理器来说,它可以在等待一个程序I/O操作的同时为另一个程序做运算,就像右图。这样,处理器可以说”随时都在办正事“,并没有浪费时间。当然,这需要巧妙的调度。我么当然也可以做到,甚至已经做到了。当我们排长队或者坐车的时候,我们可以做一些”CPU-Bound“的工作,比如读读论文、看看闲书、和女朋友煲电话粥、和旁边美女搭个讪等等。充分利用时间,决不让它无故地浪费。 可惜我一个都做不到,一坐上车,就浑身不舒服。只能听听京剧,然后就睡着了。 本文所有图片来自这里。