如何用函數闖作(4):地心說的奇蹟

2400 年前,畢達哥拉斯作為數學神教的狂熱教徒,堅信「一切事物的本質皆是數」。他相信音樂、數學乃至整個宇宙是按照這樣和諧而完美的美學設計出來的。這種美學至高的理念對後世產生了無比深遠的影響。從這種設計論出發,他認為宇宙中所有天體都應當是立體模型中最完美的球體,運行規律都應當是最和諧的勻速圓周運動。

這樣的思想在柏拉圖時代進一步發揚光大,他把宇宙萬物拆分成四種元素,化歸成幾何圖形進行解釋;他認為地球是宇宙的中心,球形的天體則沿著天球上正圓的軌道運行。亞里士多德繼承了這一思想,並加入了不朽的天界物質——第五元素。他認為月下的地界當中的四種元素有著優劣之分,土最卑賤,水其次,氣再次,最後是火。四種元素低賤的下降,高貴的上升,因此土和水停留在宇宙的中心,火則要上升到緊貼月亮的位置。每種元素到達了最適宜的位置後就會達到穩定,不再上下運動,而實際上,地界的各種元素是反常分布的——例如凸出水面的大陸,因此月下的地界是上下運動的、不完美的,這種不完美甚至玷污了天界最底層的月球(今天我們知道那些是環形山之類的陰影),甚至讓月亮出現了盈虧現象。而月上的天界由第五元素組成,它既不再上升,也不能下降,因此只能繞著宇宙的中心做永恆的完美的圓周運動了。

但在那個時代,人們已經觀察到了行星的運動遠比勻速圓周運動複雜,柏拉圖將其解釋成「月亮、太陽、金星、水星、火星、木星、土星和恆星依次在天界不同高度的球面上做變速的圓周運動」。可是,這樣距離恆定的同心球模型不能解釋行星的亮度變化,人們便提出「本輪-均輪」模型來修正,認為天體在本輪上做勻速圓周運動,而這個本輪的圓心則繞著以地球為圓心的均輪做勻速圓周運動。這個模型很好地解釋了行星的亮度變化和逆行現象。而為了解釋歲差現象(由於日月引力作用,地球自轉軸逐漸漂移),人們進一步引入了「均輪是偏心輪的模型。

托勒密總結前人的觀點,提出了經典的地心說理論

1. 地球在宇宙的中心靜止不動,恆星固定在恆星天上,所有行星和恆星每日隨最高天旋轉一周;

2. 太陽在均輪上運動,均輪繞著地球關於均輪圓心的對稱點——對應點做順時針勻角速圓周運動。月亮沒有均輪,直接在一個很小的本輪上做順時針勻速圓周運動。

3. 金星、水星的本輪圓心固定在地日連線上,火星、木星、土星與本輪圓心的連線則始終平行於這條線,五顆行星都在本輪上做順時針勻速圓周運動。

後期的地心說為了精確解釋行星運動規律,不斷在本輪上再加本輪,甚至達到 60 多個。哥白尼將太陽作為均輪環繞的中心,大大減少了這些均輪疊加的使用。事實上,哥白尼受到亞里士多德的影響,認為「均輪是偏心圓」的設定不符合宇宙的美學,在自己的模型中將其改為了等價的兩個均輪(不過天文學家們可不買這個帳,大家還是去用更好計算的偏心輪模型了……)。哥白尼的日心說,實質上只是對「本輪-均輪」模型做出的簡化。直到 19 世紀,望遠鏡技術的長足發展終於使得人們觀察到了恆星的周年視差,地球在運動的事實才被真正證明。

(圖片翻譯自維基百科:File:Epicycle solaire.jpg)

儘管在今天,對於已經知道行星繞太陽沿橢圓軌道運行的我們來說,這一切看起來頗為荒唐。但是本輪-均輪模型之所以能夠長期使用而維持相當的精準程度(甚至我們現在使用的星表依然有部分是托勒密時代的遺物),與其深層次的數學原理是分不開的。實際上,日心說是地心說在數學上的簡化模型,開普勒的橢圓軌道定律和「本均-輪輪」模型在數學上是完全等價的。只需要三個圓輪就能畫出一個橢圓軌跡,使得行星繞著固定的天體(焦點)旋轉:

以黃色圓點為原點,紅色圓點軌跡的參數方程是:x=5cos(t)+3+cos(t),y=5sin(t)+0+sin(-t)

相比於那個時代沒有牛頓力學指導的天文學家觀察到的行星運動軌跡,橢圓算是非常小兒科的曲線了。這裡舉個心形的例子吧:

由內至外各圓半徑為:23、1、5、5、6、2、1、1;

周期依次為:12、12、6、6、4、4、3、3。

動圖戳這裡。

實際上,根據傅里葉變換的原理,任何周期函數都可以表示為一系列三角函數之和。如果我們一條閉合曲線上放置一隻小蟲,讓它沿著曲線周期運動(就像上面的例子里的紅色圓點在心形上運動一樣),根據時間與坐標位置的關係,我們就可以得到兩個坐標隨著時間變化的參數方程,並以此來描述這條閉合曲線。而這兩個周期性的、關於時間變化的函數,又可以被拆解成一系列傅里葉級數,用的越多,擬合就越準確。

而這一系列三角函數,就相當於數個圓輪的組合,圓輪越多,對原曲線的刻畫就越精確。從這個角度上說,地心說創造出的本均輪可謂是一個奇蹟!她可以畫出最簡單的內擺線:

x=4sin(t)+sin(4t),y=4cos(t)-cos(4t)

也可以畫出最不可思議的結果:

(注意這張圖中有著12條分別獨立的閉合曲線,實際上是由12對參數方程構成的。如果在這些曲線之間加上連線使其連通,就可以只用一對參數方程來描述。)

地心說的數學部分從來都沒有錯,她甚至比日心說的數學要深邃得多。

P.S.

這邊文章煞尾的比較倉促,畢竟寫完地心說歷史就已經有一千多字了,可能有些爛尾的感覺,大家見諒……

一定會找時間專門寫一篇傅里葉級數的簡明科普級證明的!

最後的圖,在Mathematica有一些現成的生成演算法,我比較喜歡的是這個:

param[x_,m_,t_]:=Module[{f,n=Length[x],nf},f=Chop[Fourier[x]][[;;Ceiling[Length[x]/2]]];

nf=Length[f];

Total[Rationalize[2 Abs[f]/Sqrt[n] Sin[Pi/2-Arg[f]+2. Pi Range[0,nf-1] t],.01][[;;Min[m,nf]]]]]

tocurve[Line[data_],m_,t_]:=param[#,m,t]&/@Transpose[data]

img=Import["file"];

img=Binarize[img~ColorConvert~"Grayscale"~ImageResize~320~Blur~3]~Blur~3;

lines=Cases[Normal@ListContourPlot[Reverse@ImageData[img],Contours->{0.5}],_Line,-1];

ParametricPlot[Evaluate[tocurve[#,30,t]&/@lines],{t,0,1}]

需要方程的話就把最後的「Parametric」裡面的表達式摳出來。

第一個有黑體的行執行抽取輪廓線的功能,如果你的圖片不需要這些處理可以換成你需要的形式,只需要保證最後的「img」是一個二值的圖片就行了。

最後的黑體「30」表示傅里葉級數的數目,設置越高,方程就越長,結果就越接近原始圖片,當然也需要更多的計算時間和內存……

#然而這個暴力解法出來的式子看著頭皮發麻,根本不neat!!

另外,翻資料的時候找到了些東西,奇文共賞吧……

現在,天體軌道概念自我否定了四百年;偉大的托勒密被冤枉了四百年;一千四百年的光輝歷史被抹黑;牛頓質心說與擺線軌道的奧秘埋沒了327年;千千萬萬天文學家和人們被蒙蔽和愚弄了四百年。所以,揭開奧秘勢在必行。我們必須讓牛頓質心說擺線重見天日,普及世界。讓天體軌道研究,在質心說原理和基本軌道擺線的指引下,明確方向,勇往直前。這是史無前例的天文學史輝煌的大統一!天文學家歷屆的大團圓!萬人慶幸,全球歡騰!

這是中國人為天文學作出劃時代的巨大貢獻,圓了一個偉大的中國夢!中華民族自豪!中國人振臂歡呼!

願科普界、教育界和科研界,為樹立天文學史新的里程碑,做貢獻。這是我們這一代人的光榮使命。

推薦閱讀:

一類不等式的證法

TAG:傅里叶变换FourierTransform | 趣味数学 | 如何HowTo |