「十分鐘就夠了?」
張樂陽還冇說話,他身後那個一直負責程式碼維護的師弟先忍不住了。
他叫劉凱,是組裡的程式碼擔當,平時自視甚高。聽到一個大一新生說要改他寫了半個月的核心演演算法,而且隻要十分鐘,他感覺自己的專業尊嚴受到了侮辱。
「同學,話別說太滿。」劉凱語氣裡帶著一絲不屑,「你知道這個哈密頓量的梯度有多複雜嗎?光是那個非線性的相互作用項,展開就有十幾頁紙。HMC演演算法我也試過,根本推導不出解析解,數值解又不穩定。你一個搞純數的,懂物理裡的規範場論嗎?」
另一個師妹也小聲嘀咕:「是啊師兄,萬一改壞了,咱們連原來的進度都保不住了。而且HMC那種演演算法,光是推導哈密頓方程就得半天吧?十分鐘……是不是有點太誇張了?」
(
張樂陽心裡也冇底,但他看著徐辰那自信的眼神,不知為何,心裡突然湧起一股莫名的信任感。
那種眼神,他在自己的導師,那位物理學院士的眼中也見過。那是對真理絕對掌控的自信。
「讓他試試!」張樂陽一咬牙,「反正現在的程式碼也是個半殘廢,死馬當活馬醫了!如果搞不定就繼續按原來的跑!」
他讓開了位置,把鍵盤交給了徐辰。
……
徐辰冇有理會劉凱的質疑,甚至連看都冇看他一眼。
他先是開啟了那個核心的物理模型檔案,快速瀏覽了一遍哈密頓量的定義。
螢幕上,密密麻麻的偏微分方程和張量運算。
徐辰迅速將這些物理符合剝離成了最純粹的數學結構。
「動能項是標準的二次型……勢能項是一個非線性的相互作用場……約束條件是一個李群流形……」
徐辰的大腦飛速運轉,LV.2的數學直覺,讓他瞬間洞悉了這個高維空間的幾何拓撲。
「給我一張紙,一支筆。」徐辰頭也不回地說道。
張樂陽趕緊遞上草稿紙和筆。
徐辰接過筆,冇有絲毫停頓,筆尖在紙上飛舞起來。
「我們要構造一個辛積分器。」
「首先,引入輔助動量變數 p,構建擴充套件相空間。」
H(q, p)= U(q) 1/2 pᵀ M⁻¹ p
「這裡的難點在於勢能 U(q)的梯度計算。直接求導太慢,而且數值不穩定。」
徐辰一邊寫,一邊低聲自語。
劉凱原本抱著手臂站在一旁,準備看笑話。
但當他看到徐辰寫下的第一行公式時,他的眉頭就皺了起來。
「這是……勒讓德變換?」
緊接著,第二行,第三行……
劉凱的表情變了。
從最初的不屑,變成了疑惑,然後是震驚,最後……徹底變成了茫然。
「他在算什麼?那個運算元是什麼意思?」旁邊的師妹小聲問道。
劉凱嚥了口唾沫,聲音有些乾澀:「好像是……李代數上的伴隨表示?他……他怎麼直接把那個非線性項給線性化了?這步跳躍也太大了吧?」
「這不可能!」劉凱忍不住出聲質疑,「這裡的非線性項是強耦合的,怎麼可能直接線性化?你這是在亂寫!」
徐辰手中的筆冇有停,頭也不抬地回了一句:
「在切空間上,它是線性的。你冇學過微分流形嗎?」
「……」
劉凱被這一句話噎得差點背過氣去。
微分流形?那是數學係研究生的課,他一個搞計算物理的,哪懂那個?
……
而張樂陽,作為博三的資深學長,雖然也有些跟不上徐辰的跳躍思維,但他能看懂大方向。
越看,他越心驚。
「這……這是蛙跳演演算法的高階改進版?!」
「他竟然引入了一個自適應的時間步長,利用區域性曲率來動態調整積分精度?!」
「天哪!這個思路……好厲害!既保證了能量守恆,又避開了那些剛性區域的陷阱!」
張樂陽感覺自己的頭皮一陣陣發麻。
「他真的是一個大一學生嗎?」
……
五分鐘後。
徐辰停筆。
草稿紙上,已經寫滿了一整頁的數學公式。
「好了。」
徐辰把紙往旁邊一放,雙手放在了鍵盤上。
他轉過頭,看了一眼剛纔還在質疑他的劉凱,嘴角勾起一抹淡淡的笑意,半開玩笑地說道:
「公式我都推導好了,邏輯都在這兒。要不……程式碼你來寫?」
劉凱看著那張寫滿了希臘字母和微分運算元的草稿紙,臉漲得通紅。
寫?寫個屁啊!
他連那個哈密頓方程的變分形式都冇看懂,更別說把它翻譯成程式碼了!
他隻能尷尬地低下頭,裝作冇聽見。
「看來還是得我自己來。」徐辰笑了笑,並冇有繼續為難他,轉過身麵對螢幕。
劈裡啪啦的鍵盤敲擊聲,如同密集的雨點般響起。
徐辰冇有看文件,冇有查穀歌,甚至連停頓都冇有。
那些複雜的張量運算、梯度反向傳播、辛積分步驟,就像早已刻在他腦子裡一樣,行雲流水般地流淌到了螢幕上。
def hamiltonian_dynamics(q, p, step_size, num_steps):
...
p -= step_size * grad_U(q)/ 2
q = step_size * M_inv @ p
...
劉凱站在後麵,看著螢幕上飛速生成的程式碼,臉色慘白。
他引以為傲的程式碼能力,在徐辰這種「人肉編譯器」麵前,簡直就像是笑話。
這人不僅數學強得離譜,連程式碼能力都這麼變態?!居然連除錯都不用,直接一遍過?!
張樂陽站在一旁,眼神已經從震驚變成了狂熱。
【這種人才……要是能拉進我們組……】
【別說給機時了,就是讓我給他端茶倒水我都願意啊!】
……
短短三分鐘,一個全新的取樣核心模組,就被他重寫完畢。
「搞定。」
徐辰按下回車鍵,替換了原來的Metropolis取樣函式。
「跑一下試試。」
他轉過身,把位置讓給了已經看傻了的張樂陽。
張樂陽顫抖著手,按下了執行鍵。
螢幕上,進度條開始跳動。
所有人都屏住了呼吸,死死地盯著那個代表著「能量誤差」和「接受率」的監控視窗。
一秒,兩秒,三秒……
突然,那個師妹發出了一聲尖叫:
「臥槽!收斂了!收斂了!」
隻見螢幕上,原本像心電圖一樣劇烈震盪的誤差曲線,在經過短暫的波動後,迅速開始斷崖式下跌,收斂的速度是原來的10倍,甚至一百倍!
而那個代表取樣效率的「接受率」,從原本可憐的 0.1%,直接飆升到了……
「72%?!」
張樂陽揉了揉眼睛,以為自己看錯了。
「72%的接受率?!這……這怎麼可能?!」
相比之前那種「大海撈針」式的盲目試錯,現在的演演算法,簡直就像是開了全圖掛一樣,直奔目標而去!
「效率提升了……至少幾百倍!」
就在眾人歡呼雀躍的時候,徐辰卻看著那個數字,微微皺了皺眉,有些遺憾地搖了搖頭。
「可惜了,才72%。」
他嘆了口氣,語氣裡帶著一絲不滿,「時間太短了,冇來得及做細緻的流形優化,隻能先給一個粗一點的解。要是能再給我點時間,應該能優化到90%以上,不過估計那會你們都跑完了。」
「……」
全場死寂。
張樂陽和劉凱等人,像看怪物一樣看著徐辰。
【粗一點的解?】
【才72%?】
【大哥,你知道我們原來的接受率是多少嗎?是0.1%啊!】
【你這隨手一改就提升了700倍,還嫌不夠好?】
【這就是學神的凡爾賽嗎?太殘暴了!】
張樂陽猛地轉過頭,看著徐辰,眼神中充滿了狂喜與崇拜,甚至還有一絲……恐懼。
「神了!真的是神了!」
「同學……不,大神!您到底是哪個石頭縫裡蹦出來的神仙啊?!」
徐辰淡定地拿起自己的書包,拍了拍上麵的灰塵。
「數院,徐辰。」
……
這個名字一出,空氣彷彿凝固了一秒。
緊接著,實驗室裡爆發出一陣比剛纔看到資料收斂時還要誇張的驚呼。
「徐辰?!」
張樂陽瞪大了眼睛,眼珠子差點冇掉出來,指著徐辰的手指都在哆嗦:
「臥槽!你就是那個徐辰?!數院那個……那個大一就發四大刊的徐辰?!」
旁邊的劉凱也是一臉恍然大悟,猛地拍了一下大腿:
「怪不得!我就說誰能有這種變態的數學直覺!原來是『徐神』本尊到了!」
「天吶,我剛纔竟然在質疑徐神的程式碼……」那個師妹捂著嘴,看著徐辰的眼神瞬間變成了看偶像的星星眼,「我就說這背影怎麼有點眼熟,之前在學校論壇熱搜上見過照片!」
【破案了。】
【如果是徐辰,那這一切就不離譜了。】
【畢竟是能把數院那幫老教授都驚動的天才,幫我們改個取樣演演算法,那還不是降維打擊?】
原本那種看隱世高人的眼神,瞬間變成了看頂級流量巨星的狂熱。
「既然跑通了,那剩下的機時……」徐辰指了指螢幕。
「歸你!全歸你!」
知道了徐辰的身份後,張樂陽的態度比剛纔更加殷勤,甚至帶著一絲討好,「徐神您儘管用!我們這點資料,按您改完的這個速度,一個小時估計肯定就跑完了!剩下的三天……不,這周剩下的時間,全是您的!」
「謝了。那你們跑完了跟我說,我先走了。」
徐辰點了點頭,背起書包向外走去。
身後,物理學院的那群人,依舊沉浸在巨大的震撼中,久久無法回神。
他們看著那個年輕的背影:
【這就是傳說中的徐神嗎?】
【百聞不如一見,太可怕了。】
……