北海

引言

我看到一條記錄:「北海,北極出地六十五度,夏至晷景長六尺七寸八分,晝八十二刻,夜一十八刻」。北海是什麼地方?

它不是一般理解的貝加爾湖,貝加爾湖不會出現在如此近北的地方。實際上這句話出自元史天文志中的四海測驗,除此以外沒有任何有用的信息。

分析

「北極出地六十五度」指的是北極星仰角,一般而言,北極星仰角即為觀測者所在的緯度。「夏至晷景長六尺七寸八分」為夏至日日晷的影長,而「晝八十二刻,夜一十八刻」則對應晝夜時長。

北極星仰角

如果忽略掉不知所在的「北海」,「鐵勒」與「南海」,以及極不準確的「和林」與「衡嶽」,此外的記錄大體是準確的。而諷刺的是,五個極不準確的數據卻詳細得多。

城市 詳略 元史仰角測量值(度) 現代緯度(度) 偏差
北海 詳 65 未知 無
鐵勒 詳 55 未知 無
和林 詳 45 不適用 無
上都 略 43 42 高估
北京 略 42 41.5 高估
西京 略 40 40 準確
大都 詳 40 40 準確
西涼州 略 40 39 高估
太原 略 38 38 準確
高麗 略 38 38 準確
登州 略 38 37 高估
益都 略 37 36.5 高估
大名 略 36 36 準確
東平 略 35 35.5 低估
嶽臺 詳 35 34.5 高估
南京 略 34 34.5 低估
安西府 略 34 34 準確
河南府陽城 略 34 34 準確
興元 略 33 33 準確
揚州 略 33 32 高估
成都 略 31.5 30.5 高估
鄂州 略 31.5 30.5 高估
吉州 略 26.5 27 低估
衡嶽 詳 25 不適用 無
雷州 略 20 21 低估
瓊州 略 19 20 低估
南海 詳 15 未知 無

這是一件奇怪的事情,為什麼在高緯度傾向高估,而在低緯度傾向低估呢。

我想不應該這麼看,如果忽視吉州以下的數據,那麼整體是傾向於高估的。而高估很容易解釋,這是由大氣折射引起的,效果上總是傾向於高估北極星的仰角。緯度越高,則影響越小。

但這沒有意義,我不可能根據不可靠的記錄推測出可靠的結果來。

日晷影長

現在看看詳細的幾條數據:

  • 南海,北極出地一十五度,夏至景在表南,長一尺一寸六分,晝五十四刻,夜四十六刻。
  • 衡嶽,北極出地二十五度,夏至日在表端,無景,晝五十六刻,夜四十四刻。
  • 嶽臺,北極出地三十五度,夏至晷景長一尺四寸八分,晝六十刻,夜四十刻。
  • 和林,北極出地四十五度,夏至晷景長三尺二寸四分,晝六十四刻,夜三十六刻。
  • 鐵勒,北極出地五十五度,夏至晷景長五尺一分,晝七十刻,夜三十刻。
  • 北海,北極出地六十五度,夏至晷景長六尺七寸八分,晝八十二刻,夜一十八刻。

嶽臺是準確的,衡嶽(北緯二十七度)與和林(北緯四十七度)都低估了兩度,另外三個不清楚具體位置。

實際上從第二條記錄的粗糙程度就可以看出來,衡山在北回歸線以北,夏至日不可能沒有影子,只是沒有量出來,可以想見其他記錄也應該將這段沒有量出來的影子補上去。為了抵消這部分誤差,直接考慮對其作差。假設北回歸線的緯度為$\phi_0 = 23.5^\circ$,而測量點的緯度為$\phi$,因此夏至日陽光與垂直方向的夾角為$\phi-\phi_0$,設影長爲$l$。將和林的緯度記作$\phi_1$,影長爲$l_1$;衡嶽的緯度記作$\phi_2$,影長爲$l_2$。那麼顯然有:
$$
\frac{l - l_2}{\tan(\phi-\phi_0) - \tan(\phi_2-\phi_0)} = \frac{l_1 - l_2}{\tan(\phi_1-\phi_0) - \tan(\phi_2-\phi_0)}
$$
解出$\phi$
$$
\phi = \text{atan}\left[\frac{l - l_2}{l_1 - l_2}[\tan(\phi_1-\phi_0) - \tan(\phi_2-\phi_0)]+\tan(\phi_2-\phi_0)\right] + \phi_0
$$
這樣算出其他幾個地點的緯度:

地點 緯度
北海 63.6
鐵勒 56.0
嶽臺 36.6
南海 19.3

已知的嶽臺緯度為三十四點五度,相當於平移了兩度,這是不可兼得的事情。或者以嶽臺為基準,設嶽臺的緯度為$\phi_3$,影長爲$l_3$:
$$
\frac{l}{\tan(\phi-\phi_0)} = \frac{l_3}{\tan(\phi_3-\phi_0)}
$$
得到:
$$
\phi = \text{atan}\left[\frac{l}{l_3}\tan(\phi_3-\phi_0)\right] + \phi_0
$$
同樣可以得到其他幾組結果:

地點 緯度
北海 65.2
鐵勒 56.8
和林 46.6
衡嶽 23.5
南海 14.8

哪一種更可信呢,不好說。單從結果來看和林還算接近,衡嶽卻錯得離譜;而南海,在北緯十八度以南,根本沒有陸地。

晝夜時長

看最後一組數據,晝夜時長。

實際上古人將一天分為一百刻,知道白晝時長即可知道黑夜,反之亦然。假設白天為$n$刻,則夜晚為$100 - n$刻。可以想像一個平面從同一個頂點去截圓錐,夜弧的圓心角為$2\alpha$,則:
$$
\alpha = \text{acos}\left[\tan\phi\tan\phi_0\right]
$$
而圓心角也可以與晝夜時長對應起來:
$$
\frac{\pi - \alpha}{\alpha} = \frac{n}{100 - n}
$$
這樣解出緯度:
$$
\phi = \text{atan}\left[\frac{\cos\pi(1-n/100)}{\tan\phi_0}\right]
$$
注意「大都,北極出地四十度太強,夏至晷景長一丈二尺三寸六分,晝六十二刻,夜三十八刻」。因其規格與六者不同,在影長計算時沒有考慮。現在算出包括元大都在內的結果:

地點 緯度
北海 62.8
鐵勒 53.5
和林 44.4
大都 40.3
嶽臺 35.4
衡嶽 23.3
南海 16.1

可以對比已知的和林(北緯四十七度),大都(北緯四十度),嶽臺(北緯三十四點五度)以及衡嶽(北緯二十七度)。然而,低緯度的觀測數據是不可靠的,緯度與白晝刻漏數之間的關係如下圖所示

latitute_ticks

一個簡單的例子,南海「晝五十四刻」,如果換成五十三,那麼計算出的緯度是十二點二;如果換成五十五,則計算出的緯度為十九點八。再比如,衡嶽「晝五十六刻」,若取五十七,則緯度為二十六點六。由於刻漏的值只能取整數,由圖可知,計算結果在低緯度時對誤差敏感。

實際上,人也很難精確地區分白晝與夜晚。反過來說,在高緯度地區的觀測基本是可靠的,原因也是類似的,即上述曲線呈飽和狀態,對觀測誤差不敏感。

結論

綜上,可以得出以下結論:

對北海的觀測手段最可靠的,為晝夜時長的記錄。其次是固定兩點的日晷影長記錄,以其在南海的數值與經驗一致。最不可靠的是對北極星仰角的測量,只能定性的得出高估的判斷,而不能推測具體數值。

我比較傾向認為北海大約在北緯六十二度的某個地方。

後記

如果你奇怪我為什麼要做這個事情,顯然我真實動機並不是對北海任何博物意義上的興趣。

起因是我看到這張圖

map

這就是公然撒謊,而且是很不高明的那一種。原因很簡單,北極圈內有極晝現象,那麼夏至日夜晚的長度便是零。哪怕我沒有具體計算,我也能斷定該地離北極圈還很遙遠。實際上無論哪一種計算結果,都不曾證明蒙古人靠近過北極圈,更不要說北極圈到北冰洋,還有很長的距離。

我知道東北航道的歷史,也知道那是一段血淚而艱難的旅程,以及多少探險隊曾經葬身於此。我還知道歐洲人花了多長時間才發現到北極的洋流,意識到冰層下面是海,而非陸地。但我非常確定郭沫若、譚其驤這些人根本不知道這些,他們像是宮廷的閹人一樣窺伺上意,觀察政治風向;如果輪到他們表演,他們就輕佻地標上去,甚至不需要任何理由。如果他們還在意過所謂的「學者」身分而向國際交代,也可以編一個理由,所謂「日不落之山」便是類似的腳本。

我對此毫不意外,在我看來蒙古人的操守,都好過後來流氓知識分子,所謂「元政以寬」,也是這個道理。反過來在列寧黨那裡,一切都是為政治服務的。我曾經看到一個共產黨鬥爭的失敗者,憤怒地抱怨共產黨如何隨意地竄改歷史,不禁失笑。尊重歷史,這難道不是資產階級行為嗎;文藝歷史要為政權服務,這難道不是黨的政策嗎;至於偽造材料這種事情,你自己有少幹嗎,我不曉得你在抱怨什麼。恐怕只有資產階級那裡,才會為了科學而科學、為了學術而學術。貧下中農學者在學術上毫無創見,只能做一些收集材料的低級事情,然而就這種操守都令人懷疑,如果他們還能稱之為學者的話。

現在這些人又在以類似的方式論證南海的主權,這也反映了「文明古國」的尷尬:留下的可靠記錄少之又少,以外部分只能依靠想像去填補。實際上能模糊定位的,只有蒙古人留下的這一處記錄,其他都是語焉不詳、不知所云的空泛描述。但正如我前面所說,與北海不同,南海的定位是很成問題的。但這些都是次要的,重要的是當局是否有融入國際體系並尊重海洋法的意願,至於要找什麼樣的理由,都不過是枝節的事情。