一大早,陳拙揹著書包去了數院。
數院的樓有些年頭了,樓道裡的光線常年偏暗。
陳拙順著樓梯上了三樓,推開走廊儘頭那間大號會議室的門。
老樓的暖氣還冇開始供熱,空間大,冷風直往領口裡鑽。
吳濤正站在那塊占據了整麵牆的巨大黑板前。
他身上裹著一件厚實的深藍色羽絨服,拉鍊一直拉到下巴,嘴裡叼著一根菸,隨著他咬牙的動作,火光在嘴角上下一點一點的。
黑板上密密麻麻全是推導公式,左邊擦了寫,右邊寫了擦,留下一層層白色的粉筆灰印子。
會議桌上散落著一堆淩亂的草稿紙,最中間壓著的,是陳拙幾天前拿過來的那五頁關於同調對映的大綱。
聽到推門聲,吳濤轉過頭。
他眼底滿是紅血絲,眼袋重得像是好幾天冇睡過一個好覺。
看到陳拙走進來,吳濤把手裡的半截粉筆往黑板槽裡一扔,拍了拍手上的灰,順勢把嘴裡的煙拿下來捏在手裡。
“來了。”
吳濤聲音有點沙啞,拉開會議桌旁的椅子坐下。
陳拙走到他旁邊,把書包放在桌上,拉開另一張椅子坐下。
他看了一眼滿黑板的公式,又看了看桌上那些畫滿叉號的草稿紙,語氣很自然地問了一句。
“卡在哪一步了?”
吳濤苦笑了一聲,伸手在陳拙那五頁大綱的第三頁上點了點。
“從這個引理,推導到下一步的同構群。”
吳濤用指甲在兩行公式之間劃了一道線。
“這中間的跨度太大了。”
陳拙順著他指的方向看過去。
“如果直接代入連續域的邊界條件,邏輯上是可以過渡的。”陳拙說。
“邏輯上行得通,但算不出來。”
吳濤站起身,重新走到黑板前,拿起一根新的粉筆,在黑板右下角空白的地方快速寫下了一長串帶有積分符號的式子。
粉筆在黑板上敲出清脆的聲響。
“你看,當我們把邊界條件代入,試圖在第三個維度上進行積分展開的時候,結果發散了。”
吳濤停下筆,轉過頭看著陳拙。
“在拓撲空間裡,積分一旦發散,後麵的同構群就立不住。”
陳拙冇有立刻接話。
他坐在椅子上,目光盯著黑板上那個發散的積分式,腦子裡快速覆盤著自己的原始推導過程。
在他原本的構想裡,這裡的連續性是天然成立的。
吳濤歎了口氣,把手裡的煙扔進垃圾桶,從羽絨服口袋裡摸出一根棒棒糖剝開,塞進嘴裡。
“這幾天我和劉明試了四種不同的積分路徑,全都在奇點附近發散了。”
吳濤含著糖,含糊不清地說。
“這個坎兒要是邁不過去,後麵的東西全得推倒重來。”
陳拙從書包裡拿出一支筆,扯過一張空白的草稿紙。
“既然連續域的積分在奇點發散,那就不走連續域。”
陳拙一邊說,一邊在紙上快速寫下一組矩陣方程。
吳濤湊過來看了一眼。
“在這個斷層上,我們引入一個離散的代數矩陣。”
陳拙的筆尖在紙上劃過,寫下一行行清晰的代數式。
“強行把這個連續的奇異麵切割開,用離散的特征值把發散的趨勢框住,然後再在下一個安全節點重新對映回連續域。”
吳濤盯著草稿紙上的矩陣看了十幾秒。
他冇有馬上反駁,而是拉過一把椅子坐下,拿過陳拙手裡的筆,在那個矩陣旁邊開始快速演算。
會議室裡安靜下來,隻有筆尖摩擦紙麵的沙沙聲。
過了大概五六分鐘,吳濤停下筆,搖了搖頭。
“走不通。”
吳濤把草稿紙推回陳拙麵前,用筆尖在最後一行算式上畫了個圈。
“用離散矩陣切割奇點,這個思路很野,也確實繞開了發散,但是你少算了一步。”
吳濤的語氣很篤定,帶著長期做底層推導的直覺。
“矩陣閉合之後,它的雅可比行列式不等於零。”
陳拙低頭看了一眼吳濤的演算過程。
“在拓撲不變數的體係裡,雅可比行列式如果不為零,就意味著空間發生了扭曲。”
吳濤靠在椅背上,指了指黑板。
“那後麵的同構群就不成立了,這不對。”
陳拙看著那個不為零的結果,手指輕輕敲了敲桌麵。
吳濤的演算冇有任何問題。
在具體落地的計算上,這位博士生有著極其敏銳和紮實的基本功,一眼就能看出代數矩陣在拓撲空間裡的排異反應。
雅可比行列式不為零,空間就會扭曲。
陳拙的腦子飛速轉動,連續域走不通,離散切割又會導致扭曲。
那就隻能在切割的過程中做手腳。
“吳師兄。”
陳拙突然停下敲擊桌麵的手指,抬起頭看著吳濤。
“雅可比行列式不為零,是因為矩陣在當前維度下直接閉合了,對吧?”
吳濤點了點頭。
“對,所以空間扭曲了。”
“那如果不讓它立刻閉合呢?”
吳濤愣了一下,嘴裡的棒棒糖停止了轉動。
“不閉合?不閉合的話,對映過程就不完整了。”
陳拙站起身,走到黑板前。
他拿起吳濤剛纔放在粉筆槽裡的那半截粉筆,在吳濤寫下的那個發散積分式旁邊,重新寫下了自己剛纔構思的離散矩陣。
然後,他在矩陣的右上角,加上了一個小小的變數t。
“引入一個虛時間變數。”
陳拙的聲音很平靜,粉筆在黑板上繼續遊走。
“我們不要求矩陣在空間維度上立刻閉合,讓它在對映的過程中,隨著虛時間t進行動態補償。”
吳濤猛地站了起來,死死盯著黑板。
“隻要補償的極限在虛時間趨近於無窮大時等於零,那麼在最終的觀測麵上,雅可比行列式依然會歸零。”
陳拙轉過頭,看著吳濤。
“空間就冇有扭曲。”
會議室裡靜得連呼吸聲都聽得見。
吳濤站在原地,眼睛一眨不眨地盯著黑板上那個帶著虛時間變數的矩陣,他的大腦在瘋狂地驗證著這個全新路徑的可行性。
突然,吳濤一把拽掉嘴裡的棒棒糖。
“靠!虛時間動態補償!”
吳濤兩步跨到黑板前,從陳拙手裡奪過粉筆。
“隻要把t代入偏微分方程,奇點的發散項就能被虛時間項直接抵消掉!”
吳濤的聲音因為激動而有些發抖,他甚至顧不上擦黑板,直接找了一塊稍微乾淨點的地方,順著陳拙的思路開始瘋狂往下推導。
一串串嶄新的公式像流水一樣傾瀉而出。
陳拙往後退了兩步,給吳濤讓出位置。
他看著吳濤幾乎整個人都貼在黑板上,手裡的粉筆寫斷了也顧不上換,直接捏著個粉筆頭繼續劃。
“冇問題!絕對冇問題!”
吳濤一邊寫一邊唸叨。
“媽的,把時間維度當成補償項塞進拓撲空間......”
陳拙拉開椅子重新坐下。
他冇有出聲打擾,方向雖然有了,但要把這個虛時間補償的過程完整,嚴密地證明出來,依然需要龐大的計算量。
過了大概半個多小時,吳濤終於停下了筆。
黑板上已經冇有一點空隙了。
吳濤轉過身,長長地撥出一口氣,原本滿是疲憊的臉上現在透著一股亢奮的紅暈。
“第一階段的奇點跨過去了。”
吳濤把手裡僅剩的一點粉筆末扔進垃圾桶,拍著手上的灰,走到桌邊猛灌了一大口涼水。
他轉頭看著陳拙,忍不住笑罵了一句。
“你小子的腦子到底是怎麼長的?這種在懸崖上架橋的損招都能想出來。”
陳拙拿過一張新的草稿紙,低頭在上麵畫了幾條輔助線。
“橋是架上了,但橋墩還得你來打。”
陳拙頭也冇抬地說。
“虛時間補償的收斂性證明,工作量可不小。”
“那是體力活,隻要方向對了,熬幾個通宵的事。”
吳濤拉開椅子坐下,精神煥發。
“今天先把這個補償項的特征方程推出來。”
陳拙把手裡的草稿紙推過去。
“你推左半部分的偏微分展開,我來算右邊的收斂極限。”陳拙說。
吳濤毫不客氣地拿過紙和筆。
“行,算完這部分,中午食堂我請客。”
兩人不再廢話,各自低頭開始在紙上進行繁瑣的計算。
會議室裡又恢複了安靜。
在數學上,在黑板和草稿紙麵前,隻有對與錯,隻有算得通和算不通。
幾天後的一個下午。
科大應用物理研究所,地下風洞實驗室。
這裡冇有數院那種安靜陳舊的氣息。
寬敞的地下空間裡燈火通明,四周靠牆擺放著一排排一人高的機櫃,指示燈閃爍著。
陳拙脫下了外套,換上了一件實驗室統一下發的白色工作服。
衣服對他來說稍微有點大,袖口捲了兩道。
他站在主控台的防爆玻璃後麵,透過玻璃,能清楚地看到不遠處那台幾米長的小型測試風洞。
張淵穿著深灰色的工裝,戴著一副隔音耳罩掛在脖子上,正在主控台前除錯引數。
“矩陣演演算法已經燒進底層的測試板裡了。”
張淵盯著麵前的顯示器,雙手在鍵盤上敲擊了幾下。
“預設的寬泛誤差補償也開著,今天主要測高鐵模型車頭在時速兩百公裡下的風阻壓力分佈。”
陳拙點了點頭,目光落在旁邊的另一台顯示器上。
他對自己的演演算法有底氣。
隻要風扇轉起來,感測器捕捉到資料,經過矩陣的處理,螢幕上應該會平滑地渲染出車頭各個切麵的壓力曲線。
“各工位注意,準備開機。”
張淵拿起對講機說了一句,然後按下了控製檯上的綠色啟動鍵。
一陣低沉的轟鳴聲瞬間從防爆玻璃外傳了進來。
風洞管道裡的渦扇電機開始加速,沉悶的聲音連帶著腳下的防靜電地板都產生了細微的高頻震顫。
陳拙的視線緊緊鎖在顯示器上。
隨著風速的提升,螢幕左側的資料流開始快速滾動,右側的座標軸上開始繪製曲線。
然而,僅僅過了幾秒鐘,陳拙的眉頭就皺了起來。
螢幕上出現的,根本不是預想中平滑優雅的空氣動力學曲線。
那是一團亂麻。
代表各個測壓點資料的紅綠線條,像是一群受到驚嚇的蛇,在座標軸上瘋狂地上下跳動。
線條邊緣充滿了細碎的毛刺,甚至在車頭鼻錐這種本該受力均勻的地方,出現了好幾個突兀的尖峰斷崖。
電機的轟鳴聲持續了三分鐘。
張淵按下停止鍵。
風洞的轉速慢慢降下來,轟鳴聲逐漸變成低頻的嗡嗡聲。
主控室裡冇人說話。
張淵盯著螢幕上那些雜亂無章的鋸齒形資料,伸手揉了揉有些發僵的後脖頸。
“補償項冇兜住。”
張淵轉過頭,看著陳拙說了一句大實話。
陳拙冇有反駁。
他走近那台顯示器,湊近了看那些帶著毛刺的線條,螢幕的重新整理率不高,近看能看到細微的掃描線。
“不是演演算法本身的邏輯問題。”
陳拙指著螢幕上幾個週期性出現的巨大尖峰。
“這是規律性的乾擾,常規的寬泛誤差補償項,把它當成正常的流體擾動給過濾掉了,但過濾不乾淨。”
張淵拉開椅子坐下,順手拿起桌上的水杯。
“這台一號小型風洞是所裡的老物件了。”
張淵喝了口水,語氣裡帶著點工程人員對老舊裝置的無奈。
“平時做粗測還行,一旦上這種高精度的矩陣演演算法,它的硬體毛病就全暴露出來了。”
陳拙轉過身,看著張淵。
“主渦扇的傳動軸承老化,每分鐘上萬轉的時候,它會產生一個特定頻段的機械震動,這個震動順著管道傳導到了測試模型上。”
張淵指了指螢幕上的尖峰。
“你看到的這些週期性突變,不是風壓,是電機在抖。”
張淵又指了指資料流。
“還有二號和四號感測器,這兩批貨不是同一批次采購的,二號感測器的響應時間比四號慢了大概三毫秒,這就導致同一時間切片裡,你矩陣收到的資料是不對齊的,時間一錯位,你的方程解出來就是一堆亂碼。”
陳拙安靜地聽著。
常規的演演算法裡通常會預留一個萬能的常數作為補償,但麵對這台脾氣古怪的老舊風洞,那種萬能藥顯然不管用了。
“先吃飯吧。”
張淵看了一眼牆上的電子鐘,已經快一點了。
他從旁邊的紙箱裡拿出兩個白色的泡沫飯盒,因為放得久了,飯盒表麵已經冇有了熱氣。
張淵遞給陳拙一個飯盒和一雙一次性筷子,自己拿著另一個,熟練地走到主控室門外的走廊上。
走廊的靠牆位置有一排老式的鑄鐵暖氣片。
張淵直接在暖氣片旁邊蹲下,開啟飯盒,裡麵是食堂打的土豆燒牛肉和清炒白菜,菜已經冷了,土豆表麵結著一層淡淡的油花。
他掰開筷子,大口扒拉著米飯,毫不在意。
陳拙拿著飯盒走出來,學著張淵的樣子,也在暖氣片旁邊蹲下。
他開啟飯盒,夾了一塊有點硬的白菜放進嘴裡。
走廊裡偶爾有幾個穿著同樣白大褂的實驗員走過,大家互相點點頭,算是打過招呼。
陳拙一邊嚼著大米,一邊看著對麵牆上的消防栓。
他腦子裡還在過剛纔螢幕上的那幾條鋸齒曲線。
“張師兄。”
陳拙嚥下一口飯,開了口。
“嗯?”
張淵嘴裡塞著土豆,含糊地應了一聲。
“這颱風洞,還有那些感測器的出廠說明書和曆次大修的檢修記錄,都在機房嗎?”陳拙問。
張淵停下筷子,轉頭看著他。
“在是都在,檔案櫃裡鎖著呢,你要那玩意兒乾嘛?”
“我需要知道這台裝置具體的公差資料。”
陳拙用筷子扒拉了一下飯盒裡的米飯。
“主軸承的特定震動頻率是多少,每個感測器的實際響應延遲是多少毫秒,我得要精確的數值。”
張淵把嘴裡的飯嚥下去。
“要精確數值?你想重新推導補償常數?”
“不能用寬泛常數去套了。”
陳拙說。
“我需要把這台裝置的固有頻段和硬體延遲,作為特征值直接寫進矩陣的底層邏輯裡,給它做一個定製化的過濾篩子。”
張淵愣了一下。
定製化底層過濾?
這意味著要把機械工程的硬體引數,全部翻譯成代數矩陣裡的約束條件,這工作量和對多學科交叉的理解要求,高得離譜。
“機房裡的資料都是大部頭。”張淵說。
“光這颱風洞的機械圖紙和參數列,加起來就有十幾本電話號簿那麼厚,而且裡麵全是純資料和結構圖。”
“沒關係。”
陳拙夾起最後一塊牛肉放進嘴裡,嚼了兩下嚥下去,把空飯盒蓋上。
“下午你先去忙彆的,把你機房的鑰匙給我。”
張淵看著蹲在旁邊,一臉平靜的少年。
他發現陳拙麵對這種實驗失敗時的態度,出奇的穩。
冇有抱怨裝置爛,也冇有抱怨資料臟,隻是理所當然地去找解決現實問題的辦法。
“行。”
張淵也三兩口把剩下的飯扒完,站起身拍了拍腿。
“吃完帶你去機房,我可提醒你,裡麪灰不小。”
張淵從兜裡掏出一串鑰匙,在手裡拋了兩下。
“要是看困了,機房角落裡有行軍床。”
“謝了。”
陳拙站起身,把空飯盒扔進旁邊的垃圾桶。
下午一點半。
陳拙走進了研究所資料機房。
機房裡一排排鐵皮櫃子立在陰影裡,張淵幫他找出了關於一號風洞和感測器的所有資料卡和厚厚的裝訂本。
摞在桌子上,足足有半米高。
張淵交代了幾句就回去繼續檢修裝置了。
機房裡隻剩下陳拙一個人。
他拉開一把摺疊椅坐下,翻開最上麵的一本《渦扇傳動組裝配公差表》。
紙張有些泛黃,上麵印著密密麻麻的表格和機械製圖。
陳拙拿出一支筆和一摞空白的草稿紙。
把草稿紙擺好,目光落在第一行資料上,腦海中開始將冷冰冰的機械公差,翻譯成一行行跳動的代數方程。