馬可的傅立葉空間
來自專欄丹麥洗衣房之宇宙無限大66 人贊了文章
今天的主題又是傅立葉變換……
不過不用擔心,這次不是純科普,所以不用太費腦。今天更多是研究日記加隨筆,我想也記錄一下做科研過程中,非科研的那部分體驗。
本來上次就想寫今天的這些內容了。但是開頭一寫出傅立葉變換的公式,我就覺得必須解釋清楚才能安心。但很快發現這是個兔子洞,掉進去就出不來了,結果沒完沒了地寫了一大堆……只能在內心默默地把文章切成上下篇。
這個就算下篇吧。
兩年前我博士畢業,開始在普林斯頓做博士後。我帶著高昂的鬥志來到了新學校。
這裡有我最敬仰的前輩們:預言了宇宙微波背景的Jim Peebles、太空望遠鏡WMAP的領頭人David Spergel、斯隆數位巡天SDSS的設計者Jim Gunn……
我像是在一個滿是王菲、梁朝偉、張曼玉、麥當娜、Brad Pitt……的樓里工作。我努力剋制粉絲心態不要掏手機偷拍人家。我不是唯一這樣的,HSC的同事黃崧就告訴過我,無論第幾次見Jim Gunn,都會因為過於激動而渾身顫抖。
我默默下決心一定要努力。做出重要貢獻的希望渺茫,盡量不給周圍人拖後腿就好,我想。但同時又不甘心走尋常路(繼續做我以前的拿手工作,宇宙模擬)。我想利用這幾年學一些其他的東西。
我突發奇想,想要按辦公室門牌號,一個接一個地和裡面的人合作,無論他/她的領域是什麼(系外行星!超重黑洞!引力波!!)。我希望由此給我的學習方向增加一些隨機性。
當然,這個理想最終沒能實現,因為很快我就被拉回現實–––大家都知道我是宇宙模擬專業戶,不停地上門討要數據。我於是留在了「宇宙模擬」的舒適區,並沉浸在「被別人需要」的甜蜜里。
為了做之前的中微子宇宙模擬項目,我在Stampede超級計算機上花掉了兩百萬核小時,輸出了400TB的數據。做完模擬,從鍵盤裡抬起頭時,人間已經過了12個月。我驚訝地發現這一年裡除了沒完沒了地修bug,自己什麼都沒做成……越來越覺得自己像一個宇宙奴隸。
我很沮喪,覺得自己被固定在流水線上,騰不出時間去做有趣的事情。深夜騎車回家,我穿過校園空地時仰望星空–––雖然它是我的研究的對象,可我一點都不覺得親切。
我在普林斯頓的時日不多,卻已經不小心耗掉了寶貴的一年。我決定不能再這樣下去了,於是開始和周圍的人聯繫,討論新研究方向的可能性。
我和卡內基曼隆大學(CMU)物理系的Rachel Mandelbaum教授聯繫上,並商量了一個新項目:星系內部耦合(Intrinsic Alignments)。這是我一直想深入了解的星系效應。我也一直想和Rachel合作–––她不僅是一位弱引力透鏡專家,也是非常棒的科學家,我想要學習她的研究方法。簡直就是天時地利人和。於是我去年夏天就定好了11月去CMU所在地匹茲堡的機票,決定在那裡呆上一周,做出點初步結果。
Rachel起初建議用宇宙模擬,被我果斷駁回了–––再模擬我就要吐了!於是我們決定用觀測數據。
一到CMU,我就興奮地寫了一堆代碼,先試圖複製以前的研究結果。在Rachel以及她的前博士生Sukhdeep Singh的幫助下,很快搞定了:
就像所有其他的研究一樣,接下來我需要建立模型,再和觀測到的數據做比較。上圖左邊,圖裡的線條,就是作者Sukhdeep算出來的模型。
模型的公式是這樣的:
雖然看上去有點長,但是每個字母定義都很明確,這個比做模擬輕鬆多了。我於是心情愉悅地一邊剝桔子,一邊把字母一個一個字母敲進代碼。
我嘗試了第一次運算,等了十幾分鐘,聽到電腦在嗡嗡轉,但一直沒有出結果……
運算慢不奇怪,這公式是一個三維的積分(忘記微積分的同學,有幾個∫符號就是幾維的)。一般來說,公式平滑的話,一維用不了幾秒。保守算5秒的話,三維就是5的3次方,125秒,兩分鐘。
過了二十分鐘,我的耐心耗盡,把運算掐掉了。
我發現問題出在第二行的J2項上,它是二階貝索函數,如果畫出圖來長這個樣子(橘黃色線):
X變一點點,J2就變好多,有時候連符號都變。所以程序總是找不到公式答案。
我於是嘗試降低精度,但是結果並不穩定。我問Sukhdeep以前是怎麼算的,他說他把公式切成了1000段,用蠻力算的。我不肯投降。我才不要用蠻力,我要優美地算。
何況蠻力也很慢,要對不同的rp和Pi算幾百次,就必須用到超級計算機。一個這麼清楚的解析公式,被逼得要用並行運算,我覺得也太丟人了,一定能有更好的辦法。
從匹茲堡回到普林斯頓,又開始被追著要模擬數據。我回到時間觀念淡薄的模擬世界。這個項目無意中就被擱淺了好一段時間。
再想起這個公式,是一次喝咖啡,碰到隔壁高等研究所(IAS)來的Marko Simonovic,聊起如何用傅立葉變換快速地解高維方程。
我提到有個公式我搞不定,他叫我發給他讓他試試。
我把公式發給Marko,他當天就發回給我傅立葉變換後的解析式。
我看得有些暈。我對數學公式一直都很無感。但是我對通過聊天而學習知識很有天賦,於是我直接騎上單車,晃蕩到IAS Marko的辦公室。
撞到Marko正要和同事去食堂。我看錶,下午三點才吃中飯嗎?
Marko說,吃了,現在是去吃甜點。他給我打開辦公室,讓我在裡面稍坐一會兒,他買完甜點就回來。
Marko回來,拿了兩盤甜點。他給我一盤,「總感覺自己一個人吃很過意不去」。
我坐在桌邊吃甜點,Marko開始給我解釋他的筆記。其中最重要的一點,就是把物質能譜P(k)做傅立葉變換。
然而Marko的傅立葉變換是有特殊的格式,必須用log k bin,而不是linear(實在翻譯不動成中文了,這一段請湊合看吧……或直接跳過也行)。如果是linear的,傅立葉變換後會變成 exp(ikv)P(v),但是如果是log的話,就變成了exp[i*log(k)*v]P(v),直接可以把k拿下來,寫成 k^(iv)P(v)。接著,因為積分是對於k的不是v的,我們可以把P(v)提到積分符號外面。剩下的積分項,就剩一堆k和(令人討厭的)J2。然而,神奇之處在於,k乘J2的積分是有解析解的(也就是筆記里最後一個公式啦)!
綜上所述,Marko用傅立葉變換,幫我把一個難算的三維公式,壓縮成0.001秒就能算出來的簡單公式!
往嘴裡塞完最後一顆草莓,Marko的黑板也寫滿了。
我激動得要往回趕,恨不得邊騎車邊改代碼。但被Marko拉住,「急什麼,現在是咖啡時間」。
做暗物質理論的同事Vera從走廊探頭進來,「咖啡?」我想了想,也不缺這幾分鐘,於是又下樓和他們喝咖啡去了。
回到辦公室,我很快就用Marko的方法算出了模型曲線。把它們附加在數據圖上,非常漂亮地吻合了數據。我心血來潮,把圖的顏色也改成了粉色系。
到現在,這個項目仍然在初期,我也不知道什麼時候能弄完、甚至最終能不能弄完。
從這段沒頭沒尾的小故事,我想記錄一下科研路上最常見的心路:迷失方向,尋求幫助,一點點小成就,更多的問題,繼續尋找解決辦法……幾乎是沒完沒了。
大部分都是沮喪,但一定不要忘記在間中尋找小樂趣!
推薦閱讀:
※開普勒第一定律的證明
※有些星係為何是螺旋狀?大部分星系中心看起來為什麼特別亮?
※宇宙中真的有黑洞嗎?
※銀河繫到底有多大?
※對「費米佯謬」的純理智分析