內容梗概:前幾次說到冬至是從陰到陽的轉折點,“日北至”,“一陽生”。但冬至不是某一天而是一個時刻。如何測量這一時刻?最常見的方法是測量冬至前後幾天的影長。但如果那幾天陰天怎麼辦?冬至時刻不是正午怎麼測量影長?祖沖之提出了巧妙的方法解決了這一問題。這種方法後來為歷代所採用,它所用的數學和幾何原理非常簡單,初中生都明白,但卻蘊含着科學發現的普遍規律:長期觀測、分析數據、深入思考、提出假設、實驗驗證。


接上一節… 《時間之問》 | 系列目錄

一周以後,老師和學生又在老地方碰面了。這天餐廳里有些擁擠,中間的大長條桌坐滿了人,好像在聚餐。他們好不容易找到了一個靠牆的座位。


剛一坐下老師就問:“上次我們提到的那位中國古代科學家,你猜到了嗎?”

“是祖沖之吧?” 學生說道。

“對,正是他。”

“提到圓周率就想到了祖沖之,以前只知道他是數學家,還真不知道他還測量過冬至時刻!” 學生說到。


祖沖之 (位於北京天文台. from Wikimedia)

“除此之外,祖沖之還對天文曆法做出了很大的貢獻!你記得祖沖之是什麼時候的人嗎?”

“是南北朝的?”

“對,也就是公元500年左右,距今已經1500多年了。那時既沒有望遠鏡、也沒有精確的秒錶,更不用說其它先進的儀器和設備了。”

那祖沖之是用什麼工具來測量冬至時刻的呢?” 學生不解地問道。

“只是用一根杆子而已,測定正午時分杆子投射在地面上的影長。當然準確的叫法應該是圭表。”


圭表包括兩部分,豎立起來的叫做“圭”,而水平放置的叫“表”,表上有刻度,用來指示影子的長度 (位於北京天文台內. from Wikimedia)

“就這麼簡單?”

“是的,如果僅僅是想知道冬至大概是在哪一天,那麼只需要測量冬天正午影子最長的那一天即可。但是由於“景之差行,當二至前後,進退在微芒之間”,冬至附近影長變化經歷了一個拐點,本來變化就不明顯,再加上冬天日影變淡,很難精確測量,所以根據《左傳》等資料推算,那時連冬至日都測不準,通常會有2-3天的誤差。”

可是我有個疑問:冬至那幾天要是“陰天”怎麼辦? 就沒法測量日影了吧?”

“是的,這是個棘手的事情,畢竟天氣沒法輕易改變。其實,祖沖之還有更大的挑戰呢!”

“什麼挑戰?” 學生問道。

“冬至不是一個日子,而是一個時刻。而要精確地測量出冬至時刻,才能夠幫助制定出準確的曆法。但我們知道冬至時刻每年都在變,不一定正好是正午,如果冬至時刻在晚上,那又如何測量影長呢?古人總不會繞過大半個地球跑到美國去測量正午時分的影長吧!”

“那該怎麼辦呢?”

“這說明,單單測量影長已無法準確得到冬至時刻,必須進行推算。祖沖之之前的何承天,他連續測量十年,並且利用古人提出“要取其中”的方法來推算冬至時刻。但是具體如何做,現在已經不可考了。祖沖之長袖善舞,提出了一種很巧妙的方法,化解了陰天無日影問題、冬至時刻不在正午的問題。他提出的方法不局限在一定要在冬至這一天測量影長,而是在冬至前後幾十天的範圍內挑選幾個晴天的日子測影長,然後進行一些簡單計算就可以了,這樣一來,天氣的原因對於祖沖之來說就不是問題了。”

“哦,是嗎?真巧妙!那需要測量多少次呢?”

“需要三天正午的測量數據,因為不知道未來會不會陰天,為了保險可以多測幾次,但做計算時只要有三次的有效影長的數據就夠了。”

“只需3次的數據?”

“是的。”

“我對祖沖之越來越好奇了”,學生感嘆道:“他究竟是個什麼樣的人呢?既精於數學,又通天文!”

“你說的沒錯,一個人的性格、經歷和治學態度,決定了他採用的方法,而方法又決定了成就大小。”

“嗯。祖沖之的家庭是怎麼樣的呢?”

“祖沖之生於429年,在他出生前九年,東晉滅亡。接下來中國進入了南北朝時期,形成了南北對立的局面。 祖沖之生活在南朝的宋和齊兩個朝代,都城是建康,也就是今天的南京。祖沖之家族屬於低級士族,地位不高,但是有世代鑽研學習的傳統。祖沖之的祖父祖昌善於發明,在朝廷擔任過大匠卿,父親祖朔之是皇帝的侍從官員。根據《隋書》記載,祖家世代掌管曆法。祖沖之自幼生活在這樣的家庭里,對天文學和數學非常感興趣,廣泛搜羅閱讀鑽研前朝留下的著作,但是他發現古人留下的論述中又有一些不可靠的地方,所以他每每“親量圭尺,躬察儀漏,目盡毫釐,心窮籌策”,“不虛推古人”。”

“這讓我想到了歐洲十六、七世紀的開普勒。開普勒繼承了他的老師第谷留下的大量觀測數據,同時又不拘泥於古人的結論,終於推翻了行星軌道是圓形的觀念。”

“是的,既能夠佔有大量數據,又自己親自測量和計算,不囿於古人的結論和成法,從而才能開創出一片新天地。祖沖之自己是這樣說他如何利用古人的文獻資料的:

搜煉古今,博採沈奧。
唐篇夏典,莫不揆量。
周正漢朔,咸加核驗。
罄策籌之思,究疏密之辨
”。

祖沖之對張衡的天文著作、東漢時期劉洪的《乾象曆》和三國時期楊偉的《景初歷》都進行了系統研究考察,對前人的觀點批判地繼承。”

“比如說呢?”

“例如祖沖之看到東漢初年班固所寫的《漢書》里提到了六種古代曆法:《皇帝歷》、《顓頊歷》、《夏曆》、《殷歷》、《周曆》和《魯歷》。後人曾以為是這幾個朝代當時所採用的曆法,而經過祖沖之的推斷髮現,這些只不過是後人的偽作而已,他說:“古術之書,皆在漢初周末,理不得遠”。”

“祖沖之在哪裡進行研究呢?”

“祖沖之在青年時代就進入了南北朝時期宋朝設立的華林學省的機構,專門從事天文曆法和數學研究。因為工作出色,被朝廷“省賜宅宇車服”。後來祖沖之雖然出任了地方官,但仍然沒有中斷天文測量和研究。”

“那祖沖之是如何利用手頭的影長數據來推算冬至時刻呢?”

“雖然說祖沖之的方法只需要進行三次測量,但是實際上祖沖之每天都堅持觀測,並且積累了大量的一手數據,並且他還利用工作上的便利接觸到大量的古代觀測數據。他平時沒事就去琢磨這些數據。”

“那他從中琢磨到了什麼嗎?”

“就比如關於影長的觀測數據吧,他經過長年累月的觀察,發現冬至前後影長的數據都與下錶類似。比方說有這麼一組由於陰天導致觀測記錄不完整的杆子影長數據:

日期 影長
十月三十 12尺
十一月初一 12.06尺
十一月初二 12.12尺
十一月初三 *陰天沒有影長數據
十一月初四 12.12尺
十一月初五 12.06尺
十二月初六 12尺
十二月初七 *陰天沒有影長數據

“你能看出有什麼規律嗎?” 老師問道。

“讓我看看,影長一開始不斷增加,突然來了一個陰天,後來又不斷減少,又來了一個陰天。總體趨勢是這樣先增加后減少的。”

“對。”

“既然如此,那麼從增加變得減少的拐點應就是冬至日。”

“對,如果假設冬至前後影長增加的速度和減少的速度都是均勻的,冬至前每天增加0.06尺,冬至后每天減少0.06尺。即使有两天是陰天,那麼我們也可以估計出十一月初三那天應該是影子最長,是冬至日。”

“嗯,同意!”

“祖沖之手頭上積累了很多這樣的數據,分析研究這些數據是他從事研究的基礎。換句話說,現代科學研究也是如此:大量佔有數據,並且深入思考、科學地進行分析才有可能取得突破。”

“嗯。”

祖沖之經過仔細琢磨得到了兩個基本判斷:冬至前影長增加,冬至后影長減少,並且基本對稱。影子的變化速度是近似均勻的。

“那根據這兩個假設就能夠計算出冬至時刻嗎?”

“還要加上一點點最基本的幾何知識。”

“什麼樣的幾何知識呢?” 學生問道。

兩個相似三角形的對應邊長成比例。”

“就這麼簡單嗎?”

“方法是簡單,但是能想到這一方法本身並不簡單。它需要十年如一日的觀測,翻閱幾百年的觀測數據,還要有恆心、細心和毅力才可以。在祖沖之之前,就已經有了測量冬至時刻的粗糙方法。北朝的周琮指出:“晉、漢歷術,多以(至)前後所測晚晷,要取其中。” 但是古人是如何“要取其中”,卻沒有明確交代,因此具有很大的主觀性和隨意性,而祖沖之是第一個從嚴格的數學意義上推導出冬至點的觀測方法。”

“那麼他是具體怎麼測量的呢?”

“祖沖之曾經簡要介紹了自己的計算方法,我在手機里查到了南朝《宋史 歷律志》里的原文:

大明五年十月十日影一丈七寸七分半,
十一月二十五日一丈八寸一分太,
二十六日一丈七寸五分強,
折取其中,則中天冬至應在十一月三日。
求其蚤(早)晚,令后二日影相減,則一日差率也,倍之為法;
前二日減,以百刻乘之為實。
以法除實,得冬至加時在夜半后三十一刻,在元嘉歷后一日,天數之正也
”。”

“是什麼意思呢?”

“ 簡單翻譯一下就是,

  • 大明五年十月十日影長為10.775尺,
  • 十一月月二十五日影長為10.8175尺(“太”是古代的一個計數符號,是最小單位的3/4),
  • 十一月二十六日影長為10.7508尺(“強”也是古代的一個計數符號,是最小單位的1/12)。
  • 十月十日的影長落在十一月二十五日和二十六影長之間,所以根據對稱原理,冬至日應在十月十日和十一月二十五日之間,也就是十一月三日。
  • 令十一月二十五日和二十六日測得的兩個影長相減:10.8175-10.7508=0.0667,
  • 然後乘以2倍,0.0667 x2=0.1334,這個值稱為“法”。
  • 再令十月十日和十月二十五的影長相減:10.8175-10.775=0.0425,
  • 這個值乘以100(古代每天等分成100刻)得到4.25,稱為“實”。
  • 用“實”除以“法”:4.25/0.1334=31.86刻,
  • 即大明5年的冬至點是在11月3日31刻多一些。”

“讓我換算一下,一天是100刻,那麼31.86刻就是在一天的三分之一附近,也就是早上8點前一點,大約是現在的早上7點37分26秒。那具體是怎麼計算的呢?”

“如果把三天的影長按照時間順序分別是a,b和c,那麼計算的公式就是:

冬至在一天100刻中所處的相對時刻:100(b-a)/2(b-c)。”

“哦,這個計算真簡單,加減乘除四則運算就夠了。可是這隻是具體的計算方法,那背後的原理是什麼呢?” 學生問道。

“後人推測祖沖之應該是利用了相似三角形的原理。”

“相似三角形?果然有初中幾何知識就夠了。”

“嗯。首先,祖沖之在冬至前後選擇了A/B/C三天,正午的影長分別為a,b,c。我們可以把這三個影長畫在時間軸上(如圖),橫軸代表日期,而縱軸代表影長。a的影長介於b和c之間,根據對稱性,所以冬至日應該在A和B中間的那一天,我們標識為D日零時。也就是說A在冬至前N天,B在冬至后N天,C在冬至后N+1天。有了這三天的數據就可以推算冬至時刻了,這樣即使冬至日是陰天也沒有關係,因為並不需要在冬至那一天進行測量。退一步講,即使A/B/C三個測量日期是陰天也沒關係,只要把A提前一天,把B和C分別推后一天,我們就可以利用新的數據來計算了。”

“太妙了!”

“對。下面我們就開始驗證祖沖之的腳步開始推算了,你準備好了嗎?”

“想想都激動,這可是祖沖之一千五百多年前使用的方法!”


祖沖之相似三角形測量冬至時刻

“讓我們開始吧”。老師說道。

  • 首先,既然冬至日D是AB的中點,所以AD=DB 。
    又因為D是冬至日子夜零時,所以冬至時刻在D右邊的E點,且DB=DE+EB。
    這個E點的位置就是我們要找的冬至時刻,換句話說只需求出DE的長度就能確定冬至時刻。
  • 接下來,因為冬至前後影長是對稱的,而且a介於b和c之間,c<a<b,所以在BC之間必有一個A的對稱點A1,其影長a1=a。
    所以可以得到:AE=EA1,即AD+DE=EB+BA1。
  • 然後,我們很容易推導出DE剛好是BA1的一半。(推導方法:把AD=DB=DE+EB帶入到上式,就得到了AD+DE=DE+EB+DE=EB+BA1,約去左右的EB,得到2DE=BA1)”
    既然我們要求出DE,那麼可以先求出BA1,然後減半就可以求得DE了!

“那怎麼求BA1的長度呢?”

“關鍵之處就要找出兩個相似三角形。”

“找哪兩個相似三角形呢?”

“我們一起看一看。既然是要求BA1,那其中一個三角形肯定和BA1有關,它剛好對應了一個小三角形B’FA’1的底邊,而GC’剛好是另一個大三角形B’GC’的底邊,GC’的長度是B的正午和C的正午的間隔,剛好是一天100刻(注:古代一天分為100刻,1刻相當於現在14.4分鐘)。那麼就找到了這兩個相似三角形。小三角形的豎直邊長b-a,大三角形的豎直邊長b-c。”

接下來,根據三角形相似的原理,我們就有:(b-a)/(b-c)=BA1/BC。
所以,BA1=(b-a1)·BC/(b-c)。
而BC為25日至26日1晝夜時長100刻,也就是祖沖之原話中的“百刻”,因此BA1=100(b-a)/(b-c)。
而DE是BA1的一半,所以BA1=100(b-a)/2(b-c)。

“那祖沖之測量到的冬至時刻與理論值有多大誤差呢?”

“誤差大約是20刻,這個值遠遠小於歷代的誤差。例如東漢四分曆測得的公元173年冬至的誤差是239刻,晉朝楊偉的景初歷測的237年冬至的誤差是221刻,王朔之的永和歷測的351年冬至時刻誤差是102刻,與祖沖之同時代的何承天“立八尺之表,連測十餘年”,他的元嘉歷在公元442年測的誤差是50刻,這已經比前人的誤差縮短了一半,而祖沖之的測量誤差比何承天又小了一多半。祖沖之的方法首次提出一種明確的數學表達式來計算冬至時刻。”

“那祖沖之為什麼把冬至前後三個日子的距離拉得那麼大呢?前後有四十多天。”

“道理也很簡單。這樣就克服了冬至前後影長變化不明顯問題。把測量日期提前或推後到冬至前後二十多天,那時影長的日變化量比冬至大很多,超過了六分,更容易測量影長變化。”

“祖沖之的測量和計算方法對現在有什麼意義呢?” 學生問道。

“它的意義在於,用簡單的測量工具和簡單的數學計算得到了非常高的測算精度,這是當前科學研究和工程實踐追求的目標。”

“能舉個例子嗎?”

“如果用一句話來說,就是奧姆卡剃刀原理,又叫“簡單有效原理”,即“如無必要,勿增實體”。你看在祖沖之的測量方法里沒有任何一步是多餘的,你無法再精簡了。”

“為什麼精簡的就好呢?”

“精簡的東西人們更容易記住,也更容易流傳下來。祖沖之測量冬至時刻所發明的這個方法也被後人所繼續使用,元代的郭守敬後來繼續改進了測量的圭表,讓它的的精度又進一步提高。”

“那郭守敬是如何改進圭表的測量的呢?”

未完,待續… 《時間之問》 | 系列目錄


參考文獻:

  • 郭蕊,《數學泰斗祖沖之》,吉林出版集團,2011-1. ISBN 9787546341040

  • 陳美東. 祖沖之的天文曆法工作[J]. 自然辯證法通訊, 2002, 24(2):68-73.

  • 陳美東. 論我國古代冬至時刻的測定及郭守敬等人的貢獻[J]. 自然科學史研究, 1983, 2(1):51-60.

  • 《全齊文》卷十六 祖沖之

  • 白壽彝,《中國通史(第二版)》,上海人民出版社 江西教育出版社,2013-7


分享