項目組的第一項任務,是計算飛彈在末段的制導誤差。張教授把問題簡化成了幾個核心方程,寫在一張A4紙上,遞給林星遙。「飛彈在末段需要修正彈道,制導系統根據實測誤差計算修正量,這是典型的閉環控制問題。你先把這個算出來,下周討論。」林星遙接過那張紙,上面列著幾個公式——位置誤差、速度誤差、加速度修正量,以及它們之間的耦合關係。公式不難,難的是疊代。每一步都要根據當前的誤差計算修正量,更新狀態,再算下一步,直到誤差收斂到允許範圍內。
林星遙把那張紙帶回宿舍,坐在書桌前看了很久。她在心裡估算了一下,如果手動疊代,每一步至少需要十幾分鐘,幾十步就是幾個小時。但用電腦程式來算,只要寫對代碼,幾秒鐘就能出一組結果。
她決定用計算機。第二天,她去機房,在那台DJS-130前坐下,打開穿孔機,開始寫程序。主循環是疊代過程,每一輪計算誤差、判斷是否收斂、更新狀態。她寫得很慢,每一條指令都要反覆確認,生怕打錯一個符號導致整個程序崩潰。紙帶打了一大截,捲起來厚厚一卷。她把紙帶裝進讀帶機,啟動程序。指示燈閃爍,機器嗡嗡響了幾秒,輸出了一行結果——誤差沒有收斂,發散。
她檢查了一遍代碼,發現積分方法有問題。她用顯式歐拉法,步長太大,導致系統不穩定。她把步長縮小了一半,重新打孔,重新讀帶。這次收斂了,但疊代次數太多,計算時間過長。她又在算法上做了優化,改用隱式方法,犧牲了一點精度,換來了更快的收斂速度。第三次運行,程序在幾秒鐘內輸出了結果——誤差收斂到允許範圍。
本書首發臺灣小説網→🆃🆆🅺🅰🅽.🅲🅾🅼,提供給你無錯章節,無亂序章節的閱讀體驗
她把結果抄在報告紙上,用紅筆標註了關鍵數據。天快黑了,機房管理員進來催她關門。她收拾好紙帶和草稿紙,走出機房。回到宿舍,她把計算結果整理成報告,用鋼筆謄寫了一遍。
張教授看了她的報告,沒有馬上說話。他把每一頁都翻了一遍,把數據表看了一遍,然後抬起頭:「你在程序里用了隱式方法?」「嗯。顯式方法步長太敏感。」「做得好。」他把報告放在桌上,「接下來,把模型擴展到三維。位置誤差和速度誤差是三維矢量,修正量也是。公式會比二維複雜很多,但原理一樣。」林星遙點了點頭,把新的資料放進書包里。
晚上,她坐在書桌前,翻開新的資料。三維制導方程比二維複雜得多,六個狀態變量,三個方向的位置和速度,還有一個時間變量。方程是耦合的,位置誤差會影響速度誤差,速度誤差會影響修正量,修正量又反過來影響位置誤差。她盯著那些公式看了一會兒,腦子裡在推算算法的框架——三維疊代需要在三個方向上分別計算誤差,然後合成修正矢量。每一步都要計算三個方向的位置誤差和速度誤差,根據誤差計算修正量,更新狀態,再進入下一步。每一步的計算量是二維的三倍。
她拿出草稿紙,開始寫程序框架。先把主循環的流程圖畫出來,然後逐塊寫代碼。她寫得很慢,每一行都要反覆斟酌。寫到凌晨一點,她停下來,揉了揉眼睛。草稿紙上已經寫滿了密密麻麻的指令,但程序只完成了三分之一。她把草稿紙整理好,放在桌上,躺到床上。翻來覆去睡不著——腦子裡還在轉著那些方程,那些變量,那些疊代循環。
第二天晚上,她繼續寫。第三天,第四天。程序越寫越長,紙帶越卷越厚。到第五天,她終於把主程序寫完了,但有十幾個子程序還需要調試。她坐在機房裡,盯著那台嗡嗡作響的DJS-130,一卷一捲地打孔,一卷一捲地讀帶,一卷一捲地調試。每一次輸出結果,都離目標近了一步。
那天晚上,她本打算在機房待到九點就回去。但調試到第八個子程序時,結果總是不對——輸出數據偏離理論值太多。她檢查代碼,邏輯是對的;檢查公式,也是對的。她盯著那幾行代碼看了一遍又一遍,直到眼睛發酸。她放下筆,靠在椅背上,閉了一會兒眼睛。
機房很安靜。窗外,楊樹在路燈下投出長長的影子,樹葉在夜風裡輕輕晃動。她站起來,在機房裡走了兩圈。走到窗前,看著窗外黑沉沉的夜色。哈爾濱的夜很靜,遠處有一盞燈還亮著,不知道是誰還沒有睡。她想起林星野在偵察連,這時候應該還沒睡,也許在站崗。想起沈明月在鄰縣那所民辦學校里,也許還在備課。想起母親,腰不好,不知道睡了沒有。
她回到桌前,重新看了一遍程序。這次,她換了一個角度,從輸出結果反推輸入數據。她發現,有一個變量的初始值設錯了——不是算法的問題,是數據錄入的時候少打了一個零。她把那個數值改過來,重新打孔,重新讀帶。這一次,結果對了,完全符合理論值。
她長出一口氣,看了看牆上的鐘——凌晨兩點。機房外面的走廊空無一人,頭頂的燈散發出慘白的光。她坐在機房的硬椅子上,第一次意識到自己熬了一整夜——從晚上六點開始,到凌晨兩點,整整八個小時。她把那捲紙帶小心翼翼地卷好,用橡皮筋扎住,放進書包里,站起來,伸了個懶腰,渾身骨頭咯咯響。
走出機房,走廊很安靜,只有她的腳步聲在空蕩蕩的樓道里迴響。她推開教學樓的大門,冷風撲面而來,激得她打了個寒噤。天還是黑的,但東邊的天際線已經開始泛白了。她抬頭看著那道淺淺的魚肚白,站了一會兒,才慢慢走回宿舍。
她輕手輕腳地推開門,宿舍里很安靜,三個人都在熟睡。她摸黑坐到床邊,沒有脫衣服,直接躺了下來。枕頭底下的子彈殼硌了一下她的後腦勺,她把那枚銅殼摸出來攥在手心裡,手心已經是溫的了。她閉上眼,腦子裡還在轉著那些數字和符號。但身體太累了,那些念頭像水一樣,慢慢流走了。她聽著窗外風吹過楊樹葉子的沙沙聲,沉沉地睡了過去。