梦溪笔谈与沈括的科学思维

点击上方“章黄国学”订阅哟!

提起《梦溪笔谈》很多人都并不陌生,但对于这其中呈现的科学现象我们应该如何认识呢?今天就和小喵一起来了解一下沈括的科学思维吧~

诸雨辰

今天我们提到沈括,往往是因为初中语文教材中《活字》的课文,亦或是因为有李约瑟对《梦溪笔谈》“中国科学史的地标”的一番评价。因而提起沈括或者《梦溪笔谈》,我们就会把他与中国古代的科学技术联系起来。毫无疑问,沈括是个奇才,试看《梦溪笔谈》中广泛涉及的音律、天文、数理、医药等知识,便不得不敬佩其学识的广博。然而,知识能否转化成思维,这是学术发展中的关键一步,那么沈括有没有科学的思维呢?

要不要闰月?

众所周知,中国的农历中时常有闰月现象,今天我们大多搞不清为什么要闰月,什么时候该闰月?而其实早在沈括的时代,他就对闰月的问题提出了自己的看法。我们先说古代为什么会有闰月呢?原来古人认为:

凡日一出没谓之一日,月一盈亏谓之一月。以日月纪天,虽定名,然月行二十九日有奇,复与日会,岁十二会而尚有余日。积三十二月,复余一会,气与朔渐相远,中气不在本月,名实相乖,加一月谓之“闰”。

古代计日以太阳升起的循环为单位,计月则以月亮缺月、满月的循环为单位,而月亮经过一个缺月到满月、满月再到缺月的运行周期是29.日,我们称为“朔望月”,所以农历的一个月有时有29天、有时有30天。然而,如此计算十二个朔望月的时长就是.日,与太阳运行回归年的.25日相比,就相差了10.日。如此叠加,大约每三十二个朔望月的时间,就会差出大约一个月(29.02日)了。回归年是根据太阳直射赤道、南北回归线的时间来计算的,3月21日直射赤道即春分,6月22日直射北回归线即夏至,太阳直射决定的是四时节气的变化。而月亮的朔望与四时的节气随着朔望月与回归年的差异越来越大,就会出现节气与朔望不合的现象。对于这个时间差,古人的处理办法是“加一月谓之闰”。

闰月的出现是为了调节分别以太阳与月亮的运行为参照而划定的不同时间标准之差而产生的。某种程度上说是一个古代历法的“补丁”,有了闰月才能保证以月计时和以日计时之间的关系在一个相对长的时间内保持稳定。但问题在于计算闰月的方法需要不断地调整,并且需要一定专业技能,于是沈括提出了另一套算法:

今为术,莫若用十二气为一年,更不用十二月。直以立春之日为孟春之一日,惊蛰为仲春之一日,大尽三十一日,小尽三十日,岁岁齐尽,永无闰余。十二月常一大、一小相间,纵有两小相并,一岁不过一次。如此,则四时之气常正,岁政不相凌夺。日月五星,亦自从之,不须改旧法。

沈括认为,真正对人类生活有重要影响的是四时的变化而不是月亮的圆缺,所以应当以太阳的运行(即节气的变化)为标准确定月长,而不是以月亮的朔望为标准确定月长。因而,他主张直接把立春作为孟春之月的第一天,惊蛰作为仲春之月的第一天,而每个月的时长保证大月31日,小月30日,如此一来就能实现“岁岁齐尽,永无闰余”了。沈括的方法可谓釜底抽薪,也非常近似于我们今天历法中一个月的时长了。

沈括这么设计当然是要冒风险的,虽然中国古代不像西方那样有宗教法庭,但是在《尚书·尧典》中就有“以闰月定四时成岁”的记载。于经典有征意味着它是“先王之法”,沈括此举可谓废先王之道而行之,无疑得不到古代士大夫的认同。实际上,在这条笔记的末尾,沈括也说:“今此历论,尤当取怪怒攻骂,然异时必有用予之说者。”他自己也清楚此论只会招来攻击与谩骂,不可能实行,只好把希望寄托于将来。

比较一下闰月的方法与沈括的算法,闰月是历法在出现问题后的补救之法,而沈括的算法是发现旧理论的问题后,重新提出另一套理论。其内在的逻辑就与地心说到日心说的关系类似,因为运动是绝对的,静止是相对的,所以二者的区别只在以谁作为参考系来计算其他星球运行规律的问题,以地为心的计算就需要打更多的“补丁”,而补丁打得越多,整个系统就越容易崩溃。同样的道理,沈括的历算也是追求以理论的精良来减少附加的补丁,这就不仅仅是天文知识的问题了。

《梦溪笔谈》书影·明崇祯刻本

李术士与日月蚀

《梦溪笔谈》中另一个故事,也显示了提出新算法而不是补救老算法的理论追求。话说宋神宗之弟荆王的手下有一个姓李的术士,这个李术士很神,据沈括记载,他曾造过一尊捕鼠钟馗像:

尝木刻一“舞钟馗”,高二三尺,右手持铁简,以香饵置钟馗左手中。鼠缘手取食,则左手扼鼠,右手运简毙之。以献荆王,王馆于门下。会太史言月当蚀于昏时,李自云:“有术可禳。”荆王试使为之,是夜月果不蚀。王大神之,即日表闻,诏付内侍省问状。李云:“本善历术,知《崇天历》蚀限太弱,此月所蚀,当在浊中。以微贱不能自通,始以机巧干荆邸,今又假禳禬以动朝廷耳。”诏送司天监考验。

李术士的钟馗像,手臂可以活动,用诱饵抓住老鼠后还能挥动铁板把老鼠打死,他正是凭借这尊钟馗像成为了荆王门客。某日,天文官汇报说当晚将有月蚀,这个李术士就自称能禳除月蚀,结果当晚果然没有发生月蚀。荆王感到很神奇,就上奏了皇帝。李术士坦白其实自己并没有禳除月蚀的法术,只是根据他的计算那晚不会出现月蚀而已,但是宋神宗还是觉得他很有能力,于是给李术士授予了司天监的官职。

众所周知,太阳运行到地球和月亮之间就会发生月蚀,月亮运行到地球和太阳之间就会发生日蚀。但是月蚀和日蚀的发生有一定条件,那就是日月的角度要足够接近。地球运行的轨道为黄道,月球运行的轨道称白道(古人称月道),两个轨道的交点称为“黄白交点”,而太阳与黄白交点的角度决定了是否会发生月蚀和日蚀。当然,这个数并不是一个定值,而有一定的区间,现在一般认为太阳与黄白交点的角度小于15°21′时就会发生日蚀,大于18°31′则不会发生日蚀,在二者之间可能会日蚀也可能不会日蚀,这个限度称为“日蚀限”。同理,若太阳与黄白交点的角度小于9°30′时就会发生月蚀,大于12°15′则不会发生月蚀,在二者之间可能会月蚀也可能不会月蚀,称为“月蚀限”。李术士认为,根据天文官的计算会出现月蚀,而实际没有出现月蚀。其原因在于当时的《崇天历》所规定的蚀限太宽了,于是就修补了《崇天历》的蚀限标准。

然而,到了熙宁元年七月的某一天,又发生了日蚀,按照李术士修改后的蚀限标准却没有测算出来。原来这回又定的蚀限又太严了,司天监的官员也因此被贬官,最后的处理意见是又恢复了原来《崇天历》的标准。但是问题就来了,旧标准算错了庆历年间的月蚀,而新标准算不出熙宁年间的日蚀,这个补丁无论怎么打都圆不了场。

后来,沈括提举司天监时,不拘一格地起用了淮南布衣卫朴,并在沈括的领导下重新编订《奉元历》,这才解释清楚其中原理:

至熙宁五年,卫朴造《奉元历》,始知旧蚀法止用日平度,故在疾者过之,在迟者不及。《崇》《明》二历加减,皆不曾求其所因,至是方究其失。

沈括和卫朴结合了唐僧一行的理论以及实际的观测数据发现,太阳运行的速度并不是匀速的。要计算日月蚀就不仅要考虑蚀限的问题,还必须计算太阳实际的运行度数与平均运行度数之差(即盈缩差),而盈缩差是个瞬时值。沈括提出的算法是:

以圆法相荡而得衰,则衰无不均;以妥法相荡而得差,则差有疏数。相因以求从,相消以求负;从负相入,会一术以御日行。

沈括指出,无论是根据太阳的运行轨道计算其速度还是根据盈缩法计算其速度,都会出现盈缩差,那么就需要对这些差额进行一系列相乘、相减的操作,把积差一并汇总运算,就得到一种把握太阳运行的方法。按照今人研究,沈括使用的是用不等距的内插法来计算真太阳日的长短。沈括与卫朴新编的《奉元历》中就运用了这种算法,为了验证这种算法的准确性,他们还计算了《春秋》记载的日蚀,结果36次中算中了35次,超过了此前所有历法的计算准确度。

在这个故事中,我们同样可以看到沈括解决天文问题的原则,即以更精密的理论模型来完善具体的算法,而不是像一般人那样简单地调整某个参数,给旧理论模型打“补丁”,这种思维方式在沈括解决科学问题时是一贯的。

一盘围棋有多少种下法?

沈括还以计算棋局的方式举过一例。围棋有19×19路共目,每一目可以有落黑棋、落白棋和空三种情况,那么一盘棋一共有多少可能性呢?这是一个复杂的计算过程,不可能用穷尽的算法运算,而这也就是“阿尔法GO”战胜李世乭之所以会引起世界轰动的原因。

当然,具体的算法看起来很简单:

初一路可变三局(一黑、一白、一空),自后不以横直,但增一子,即三因之。凡三百六十一增,皆三因之,即是都局数。

最直接的算法就是每算一目就乘3,把目完整地乘上一遍,最后就能得出总数。但是乘次后其结果就是个天文数字,在古代根本不可想象。于是沈括设计了简化运算的方法:

先计循边一行为“法”(凡十九路,得十一亿六千二百二十六万一千四百六十七局),凡加一行,即以“法”累乘之,乘终十九行,亦得上数。

他提出先计算一路的可能数(3的19次方),把这个数称为“法”,之后就是对“法”累乘19次即可,这个所谓的“法”其实就是代数的思维方式。但沈括又说还可以更简单:

以自“法”相乘(得一百三十五兆八百五十一万七千一百七十四亿四千八百二十八万七千三百三十四局,此是两行,凡三十八路变得此数也),下位副置之,以下乘上,又以下乘下,置为上位;又副置之,以下乘上,以下乘下;加一“法”,亦得上数。有数法可求,唯此法最径捷。(只五次乘,便尽三百六十一路。)

沈括的意思是说把“法”先自乘,(为了方便说明,我们设“法”为x)得x平方,然后与上一个自乘的法(x平方)相乘,再与下一个x平方相乘,即得出x平方的3次方,即x的6次方,这个结果再以相同的方法算一次就是x的6次方的3次方,即x的18次方,再加(乘)一法,就是x的19次方,也就完成了3的次方的运算。沈括说这种办法最为便捷,因为使用了指数运算,所以只要计算五次即可,而最终的答案就是“连书万字四十三,即是局之大数”(即一万的43次方)。能算到这个程度,如果没有代数运算与指数运算的思维是不可能的,而能运用起代数与指数运算的方法,其基础还在于沈括不断提出新的算法模型以形成更完善的理论这种抽象的思维方式。

怪力乱神怎么算?

但是,当我们讨论沈括的科学思维时,还有一个问题不能回避,那就是《梦溪笔谈》中同样出现了“神奇”、“异事”两卷的内容,记载了很多无法解释的超自然现象。比如预知未来的故事,如预知王俊民中状元、郑夷甫预知死期、陈抟预知张咏的未来等等。预知未来或者时间机器是千年以来人类一直追求的梦想,围绕着改变时间、改变未来而诞生的故事也是今人喜闻乐见的主题,比如《蝴蝶效应》《命运石之门》等影视作品,都以改变时间作为故事题材。

沈括当然也对此很感兴趣,然而津津乐道地记载预言故事的他同时也反思了预知未来的问题,他说:

余以谓不然,事非前定。方其知时,即是今日,中间年岁,亦与此同时,元非先后。此理宛然,熟观之可谕。或曰:“苟能前知,事有不利者,可迁避之。”亦不然也。苟可迁避,则前知之时,已见所避之事,若不见所避之事,即非前知。

这番话说得相当抽象,为什么说某件事从它被知道的那一刻起就已经是“今日”而不是未来了呢?沈括从逻辑上论证说,因为事情的结果是可以通过规避某些行为而改变的,那么如果能预知未来,就应该可以通过某种规避的行为而改变未来。但是,既然规避性的行为可以改变未来,那么人所预知的未来就不会是预言时的样子了,所以从逻辑上说人是不可能预知未来的。

可见,面对神异事件,沈括所追求的仍然是一个能合于各种现象的统一的解释,而且这个解释必须在逻辑上能自洽,有些事情一时找不到合理的解释,那么就先记下来,而有时候则只好用今人看起来不科学的理论来解释。比如他提到“水”能生铜的现象:

信州铅山县有苦泉,流以为涧。挹其水熬之则成胆矾。烹胆矾则成铜,熬胆矾铁釜,久之亦化为铜。水能为铜,物之变化,固不可测。按《黄帝素问》有“天五行,地五行,土之气在天为湿,土能生金石,湿亦能生金石”,此其验也。

熬煮胆矾溶液(CuSO4)为什么会产生铜呢?根据现代化学知识,我们知道是铁与硫酸铜溶液发生了置换反应,生成了硫酸亚铁(FeSO4)和铜单质。但是古人无法从现代科学的角度解释这一问题,怎么办呢?沈括的解释就是运用五行的理论,以“土生金”这样一种我们看起来不那么科学的理论来解释化学现象。

实际上,正如沈括所说:“人但知人境中事耳,人境之外,事有何限?”人类对宇宙自然的认识在任何时代都是有边界的,处于人类认知边界以外的现象,只能依托于某种理论假设。这些理论假设就是人类探索未知、解释世界的通道,因而我们今天看来超自然的解释(比如五行、佛法等)和科学的解释(比如蚀限、岁差等),在古代根本是并行不悖的,它们都是为了获得某种统一的认识而形成的理论。而我们之所以可以说沈括具有某种科学思维,并不在于他分析事事都符合科学的解释,而在于他对理论的追求,在于他以构建新的理论模型的方式来解决问题的能力,这些是我们接触古代学者、学习古代学术时最应感佩的。

作者简介:

诸雨辰,北京师范大学文学院博士研究生,中国古典文献学专业。出版整理《梦溪笔谈译注》(中华书局)

特别鸣谢

书院中国文化发展基金会

敦和基金会

章黄国学

有深度的大众国学

有趣味的青春国学

有担当的时代国学

北京师范大学章太炎黄侃学术研究中心

北京师范大学古代汉语研究所

长按







































白癜风能根治吗
北京最好白癜风知名医院



转载请注明地址:http://www.danfana.com/dfjb/214.html
  • 上一篇文章:
  • 下一篇文章:
  • 热点文章

    • 没有热点文章

    推荐文章

    • 没有推荐文章