陳序年從旁邊的桌上拿起一支鉛筆,在一張廢紙上寫給他看。
「比如分離係數1.0035,乘以一萬變成10035,計算過程中全部用整數運算,每一步的中間結果也是整數,最後所有結果再除以一萬,把小數點移回來。」
梁啟明盯著那行數字。
「那範圍不就……八位二進位制最大只有255,乘一萬不就溢位了?」
「不用八位一次搞定。」
陳序年在紙上畫了個拆分示意圖。
「一個大數拆成高位和低位兩次運算,先算低八位,再算高八位,進位由人工記錄,相當於筆算的進位法,只不過每一步的加減法由機器代勞。」
梁啟明把這個過程在腦子裡過了一遍。
「那等於每個數要算兩次?」
「對,但兩次三秒也就六秒,人手搖計算器一次十五分鐘。」
【寫到這裡我希望讀者記一下我們域名 天天看小說書庫全,𝔱𝔱𝔨𝔞𝔫.𝔱𝔴任你選 】
「六秒對十五分鐘……」
梁啟明自言自語的算了一下比例。
「一百五十比一,就算打個對摺,還是夠快。」
「沒錯,精度方面,定點放大一萬倍相當於保留四位有效數字,分離係數疊代需要的精度是三位,夠用了。」
梁啟明又想了想。
「那流量平衡那部分呢,三百一十二個節點的聯立方程——」
「不需要這台機器直接解方程。」
陳序年說。
「用疊代法,先猜一組初始值,代進去計算殘差,根據殘差調整,再代入,再算殘差,每一輪疊代都是大量的加減乘除,這正是機器能幹的活,你們負責判斷收斂方向、設定調整量,機器負責算數。」
梁啟明沉默了幾秒。
他是做過大規模數值計算的人,疊代法的套路很熟。
「那我們的角色就是——」
「你們是大腦,它是手。」
陳序年指了指那塊板子。
「你們拆解問題、設計步驟、校驗結果,它替你們完成最耗時間的那部分重複運算。」
梁啟明點了點頭。
「行。」
他轉頭又看了看那塊板子,然後看著陳序年。
「那教我怎麼用。」
接下來的一天,陳序年帶著計算組的人熟悉操作流程。
從二進位制轉換到開關撥動,從觸發按鈕到讀數方式,從定點數的放大還原到高低位拆分,每一個細節都講了一遍。
梁啟明學的最快。
演示一遍完,他就能獨立操作了。
「陳工,這東西有沒有什麼限制?」
「有。」
陳序年說。
「連續執行兩小時之後,底板會發熱,必須停機十分鐘散熱,不然焊點會軟化。」
「明白。」
梁啟明在本子上記下來。
「還有呢?」
「輸入輸出都是手動的,定點數轉換的時候容易算錯,所以每組資料算完之後,必須有人覆核,不光覆核機器輸出,還要覆核輸入的時候定點數有沒有轉錯。」
「這個沒問題,我們本來就是兩人一組,一個算一個核,轉換表我讓人做一份速查本出來。」
陳序年點了點頭。
「那就開始吧。」
計算正式啟動。
陳序年把級聯分離的整個計算流程拆解成了三百多個步驟,每個步驟都寫的清清楚楚,輸入什麼數、怎麼做定點轉換、拆幾次運算、輸出結果怎麼還原。
本質上就是程式設計,最原始的、用人工撥開關代替輸入的程式設計。
計算組的人兩人一組,分成六組。
每組面前放著一張步驟表和一份定點數速查本,按照表上的順序逐個計算。
梁啟明帶著一組,負責最核心的分離係數疊代。
陳序年站在旁邊,隨時解答問題。
第一組資料輸入。
梁啟明對著速查本,把分離係數乘以一萬,拆成高低兩位,撥好開關。
按鈕按下。
三秒。
輸出燈亮了。
旁邊的人讀數,記錄。
「低位127。」
「記上,進位0。」
下一步。
高位運算。
開關撥動,按鈕按下。
三秒。
「高位3,合併結果30127,除以一萬,3.0127。」
梁啟明對照手算的校驗值。
「對上了,下一組。」
就這樣,一組接一組。
實驗室里只剩下開關撥動的咔嚓聲和鉛筆寫字的沙沙聲。
第一天結束時,梁啟明把當天的進度匯總了一下。
「陳工,今天算了四十二組,按這個速度,分離係數疊代五天能完成。」
「嗯,注意精度,寧可慢一點,別算錯。」
「放心,每組都有兩個人核對。」
進入第四天,節奏已經完全穩定了。
計算組的人對操作流程熟的不能再熟,撥開關、讀數、定點轉換、記錄,一氣呵成。
連定點數的乘除還原都不需要查速查本了,直接背下來了。
陳序年不用再守在旁邊了。
他把大部分時間用在了準備下一階段,流量平衡疊代的步驟表編寫上。
第六天。
流量平衡計算啟動。
這是三大塊里最複雜的一塊,三百一十二個節點,每輪疊代需要算每個節點的殘差,再根據殘差調整流量分配。
陳序年把計算流程拆成了五十多個步驟模組,每個模組內部是固定的加減乘,模組之間由計算組的人根據收斂情況判斷跳轉。
梁啟明帶一組負責主迴圈,另外兩組分頭算各自的節點段。
三台加法器,方培生連夜又焊了兩台備用的,同時運轉。
實驗室里,三組人各占一個操作台。
開關撥動的聲音此起彼伏。
陳序年在三個台子之間來回走,隨時解答問題。
「陳工,這個節點的殘差是負數,我用補碼算的,你看這個結果——」
陳序年走過去,看了看記錄。
負數,他在步驟表上標註的補碼規則是「取反加一」。
「沒錯,這個結果是對的,負殘差說明流量偏大,下一輪往小調。」
「調多少?」
「殘差絕對值的三分之一。」
「明白。」
下午三點,第一輪疊代完成。
梁啟明把各節點的殘差匯總,拿過來給陳序年看。
「最大殘差0.0024,平均0.0008。」
「收斂的不錯,再跑兩輪應該就到精度要求了。」
「行。」
到第八天晚上十點,第三輪疊代跑完。
所有節點的殘差都小於0.0003。
收斂了。
梁啟明拿著最終結果找到陳序年。
「陳工,流量平衡收斂了,這是總分離功驗算的匯總——」
他把最後一張紙遞過來。