陈序年从旁边的桌上拿起一支铅笔,在一张废纸上写给他看。
“比如分离系数1.0035,乘以一万变成10035,计算过程中全部用整数运算,每一步的中间结果也是整数,最后所有结果再除以一万,把小数点移回来。”
梁启明盯着那行数字。
“那范围不就……八位二进制最大只有255,乘一万不就溢出了?”
“不用八位一次搞定。”
陈序年在纸上画了个拆分示意图。
“一个大数拆成高位和低位两次运算,先算低八位,再算高八位,进位由人工记录,相当于笔算的进位法,只不过每一步的加减法由机器代劳。”
梁启明把这个过程在脑子里过了一遍。
“那等于每个数要算两次?”
“对,但两次三秒也就六秒,人手摇计算器一次十五分钟。”
“六秒对十五分钟……”
梁启明自言自语的算了一下比例。
“一百五十比一,就算打个对折,还是够快。”
“没错,精度方面,定点放大一万倍相当于保留四位有效数字,分离系数迭代需要的精度是三位,够用了。”
梁启明又想了想。
“那流量平衡那部分呢,三百一十二个节点的联立方程——”
“不需要这台机器直接解方程。”
陈序年说。
“用迭代法,先猜一组初始值,代进去计算残差,根据残差调整,再代入,再算残差,每一轮迭代都是大量的加减乘除,这正是机器能干的活,你们负责判断收敛方向、设定调整量,机器负责算数。”
梁启明沉默了几秒。
他是做过大规模数值计算的人,迭代法的套路很熟。
“那我们的角色就是——”
“你们是大脑,它是手。”
陈序年指了指那块板子。
“你们拆解问题、设计步骤、校验结果,它替你们完成最耗时间的那部分重复运算。”
梁启明点了点头。
“行。”
他转头又看了看那块板子,然后看着陈序年。
“那教我怎么用。”
接下来的一天,陈序年带着计算组的人熟悉操作流程。
从二进制转换到开关拨动,从触发按钮到读数方式,从定点数的放大还原到高低位拆分,每一个细节都讲了一遍。
梁启明学的最快。
演示一遍完,他就能独立操作了。
“陈工,这东西有没有什么限制?”
“有。”
陈序年说。
“连续运行两小时之后,底板会发热,必须停机十分钟散热,不然焊点会软化。”
“明白。”
梁启明在本子上记下来。
“还有呢?”
“输入输出都是手动的,定点数转换的时候容易算错,所以每组数据算完之后,必须有人复核,不光复核机器输出,还要复核输入的时候定点数有没有转错。”
“这个没问题,我们本来就是两人一组,一个算一个核,转换表我让人做一份速查本出来。”
陈序年点了点头。
“那就开始吧。”
计算正式启动。
陈序年把级联分离的整个计算流程拆解成了三百多个步骤,每个步骤都写的清清楚楚,输入什么数、怎么做定点转换、拆几次运算、输出结果怎么还原。
本质上就是编程,最原始的、用人工拨开关代替输入的编程。
计算组的人两人一组,分成六组。
每组面前放着一张步骤表和一份定点数速查本,按照表上的顺序逐个计算。
梁启明带着一组,负责最核心的分离系数迭代。
陈序年站在旁边,随时解答问题。
第一组数据输入。