背景:
字級:小標準大特大 行距:緊湊標準寬鬆超寬

第112章 運算結果出來了

  陳序年從旁邊的桌上拿起一支鉛筆,在一張廢紙上寫給他看。

  「比如分離係數1.0035,乘以一萬變成10035,計算過程中全部用整數運算,每一步的中間結果也是整數,最後所有結果再除以一萬,把小數點移回來。」

  梁啟明盯著那行數字。

  「那範圍不就……八位二進位制最大只有255,乘一萬不就溢位了?」

  「不用八位一次搞定。」

  陳序年在紙上畫了個拆分示意圖。

  「一個大數拆成高位和低位兩次運算,先算低八位,再算高八位,進位由人工記錄,相當於筆算的進位法,只不過每一步的加減法由機器代勞。」

  梁啟明把這個過程在腦子裡過了一遍。

  「那等於每個數要算兩次?」

  「對,但兩次三秒也就六秒,人手搖計算器一次十五分鐘。」

  【寫到這裡我希望讀者記一下我們域名 天天看小說書庫全,𝔱𝔱𝔨𝔞𝔫.𝔱𝔴任你選 】

  「六秒對十五分鐘……」

  梁啟明自言自語的算了一下比例。

  「一百五十比一,就算打個對摺,還是夠快。」

  「沒錯,精度方面,定點放大一萬倍相當於保留四位有效數字,分離係數疊代需要的精度是三位,夠用了。」

  梁啟明又想了想。

  「那流量平衡那部分呢,三百一十二個節點的聯立方程——」

  「不需要這台機器直接解方程。」

  陳序年說。

  「用疊代法,先猜一組初始值,代進去計算殘差,根據殘差調整,再代入,再算殘差,每一輪疊代都是大量的加減乘除,這正是機器能幹的活,你們負責判斷收斂方向、設定調整量,機器負責算數。」

  梁啟明沉默了幾秒。

  他是做過大規模數值計算的人,疊代法的套路很熟。

  「那我們的角色就是——」

  「你們是大腦,它是手。」

  陳序年指了指那塊板子。

  「你們拆解問題、設計步驟、校驗結果,它替你們完成最耗時間的那部分重複運算。」

  梁啟明點了點頭。

  「行。」

  他轉頭又看了看那塊板子,然後看著陳序年。

  「那教我怎麼用。」

  接下來的一天,陳序年帶著計算組的人熟悉操作流程。

  從二進位制轉換到開關撥動,從觸發按鈕到讀數方式,從定點數的放大還原到高低位拆分,每一個細節都講了一遍。

  梁啟明學的最快。

  演示一遍完,他就能獨立操作了。

  「陳工,這東西有沒有什麼限制?」

  「有。」

  陳序年說。

  「連續執行兩小時之後,底板會發熱,必須停機十分鐘散熱,不然焊點會軟化。」

  「明白。」

  梁啟明在本子上記下來。

  「還有呢?」

  「輸入輸出都是手動的,定點數轉換的時候容易算錯,所以每組資料算完之後,必須有人覆核,不光覆核機器輸出,還要覆核輸入的時候定點數有沒有轉錯。」

  「這個沒問題,我們本來就是兩人一組,一個算一個核,轉換表我讓人做一份速查本出來。」

  陳序年點了點頭。

  「那就開始吧。」

  計算正式啟動。

  陳序年把級聯分離的整個計算流程拆解成了三百多個步驟,每個步驟都寫的清清楚楚,輸入什麼數、怎麼做定點轉換、拆幾次運算、輸出結果怎麼還原。

  本質上就是程式設計,最原始的、用人工撥開關代替輸入的程式設計。

  計算組的人兩人一組,分成六組。

  每組面前放著一張步驟表和一份定點數速查本,按照表上的順序逐個計算。

  梁啟明帶著一組,負責最核心的分離係數疊代。

  陳序年站在旁邊,隨時解答問題。

  第一組資料輸入。

  梁啟明對著速查本,把分離係數乘以一萬,拆成高低兩位,撥好開關。

  按鈕按下。

  三秒。

  輸出燈亮了。

  旁邊的人讀數,記錄。

  「低位127。」

  「記上,進位0。」

  下一步。

  高位運算。

  開關撥動,按鈕按下。

  三秒。

  「高位3,合併結果30127,除以一萬,3.0127。」

  梁啟明對照手算的校驗值。

  「對上了,下一組。」

  就這樣,一組接一組。

  實驗室里只剩下開關撥動的咔嚓聲和鉛筆寫字的沙沙聲。

  第一天結束時,梁啟明把當天的進度匯總了一下。

  「陳工,今天算了四十二組,按這個速度,分離係數疊代五天能完成。」

  「嗯,注意精度,寧可慢一點,別算錯。」

  「放心,每組都有兩個人核對。」

  進入第四天,節奏已經完全穩定了。

  計算組的人對操作流程熟的不能再熟,撥開關、讀數、定點轉換、記錄,一氣呵成。

  連定點數的乘除還原都不需要查速查本了,直接背下來了。

  陳序年不用再守在旁邊了。

  他把大部分時間用在了準備下一階段,流量平衡疊代的步驟表編寫上。

  第六天。

  流量平衡計算啟動。

  這是三大塊里最複雜的一塊,三百一十二個節點,每輪疊代需要算每個節點的殘差,再根據殘差調整流量分配。

  陳序年把計算流程拆成了五十多個步驟模組,每個模組內部是固定的加減乘,模組之間由計算組的人根據收斂情況判斷跳轉。

  梁啟明帶一組負責主迴圈,另外兩組分頭算各自的節點段。

  三台加法器,方培生連夜又焊了兩台備用的,同時運轉。

  實驗室里,三組人各占一個操作台。

  開關撥動的聲音此起彼伏。

  陳序年在三個台子之間來回走,隨時解答問題。

  「陳工,這個節點的殘差是負數,我用補碼算的,你看這個結果——」

  陳序年走過去,看了看記錄。

  負數,他在步驟表上標註的補碼規則是「取反加一」。

  「沒錯,這個結果是對的,負殘差說明流量偏大,下一輪往小調。」

  「調多少?」

  「殘差絕對值的三分之一。」

  「明白。」

  下午三點,第一輪疊代完成。

  梁啟明把各節點的殘差匯總,拿過來給陳序年看。

  「最大殘差0.0024,平均0.0008。」

  「收斂的不錯,再跑兩輪應該就到精度要求了。」

  「行。」

  到第八天晚上十點,第三輪疊代跑完。

  所有節點的殘差都小於0.0003。

  收斂了。

  梁啟明拿著最終結果找到陳序年。

  「陳工,流量平衡收斂了,這是總分離功驗算的匯總——」

  他把最後一張紙遞過來。