邹工把公文包放在讲台上,打开,从里面拿出一样东西。
不是文件,是一台笔记本电脑。
黑色的,大概一本《辞海》缩印本那么大,屏幕合着,外壳上有一个红绿蓝三色组成的标志。
他把屏幕掀开,按了一下侧面的一个按钮,机器发出一声轻微的蜂鸣,屏幕上亮起了一片蓝色的光。
活动室里的空气凝固了大概三秒钟。
1990年,一台真正的笔记本电脑,能掀开屏幕就能用的那种。
集训队里大多数人只在《计算机世界》杂志上见过照片。
邹工把机器转过来面朝大家,屏幕上是一个DOS命令行,光标一闪一闪的。
“这是我们公司跟香港合作开发的一款便携式微机。”
邹工的声音带着一点南方口音,“80286的芯片,1兆内存,20兆硬盘,国内目前还没有批量上市,这是工程样机。”
他从公文包里又掏出一张软盘,三寸半的,黑色塑料壳,贴着一张手写的标签——数学函数库·测试版。
他把软盘插进机器侧面的驱动器里,软盘推进去的时候发出咔嗒一声脆响。
屏幕上的光标闪了几下,然后跳出一行字:“MathLib v0.1——中国计算机发展公司。”
“这个数学函数库是我们公司正在开发的产品,主要是给国内的科研单位和大学用的。”
邹工敲了几个命令,屏幕上列出了一长串函数名——三角函数、指数对数、矩阵运算、数值积分。“目前核心算法部分基本完成了,但有一个模块一直没达到预期的精度。”
他打开了一个名为SPLI的文件,屏幕上显示出一组数据和对应的曲线拟合结果。
“三次样条插值模块,在边界条件比较复杂的情况下,误差会放大,我们调试了两个月没找到问题出在哪里。”
邹工转过身看着活动室里的队员们。
“公司离这儿不远,骑车二十分钟,我们李总听说集训队有一群数学底子扎实的年轻人,让我带着机器过来,看有没有人愿意帮忙看看。不是白干,按项目外包算报酬。”
活动室里响起一阵低低的议论声。
报酬的事大家没太在意,真正让人兴奋的是那台机器。
一台能掀开盖子就能用的笔记本电脑,一张三寸半的软盘,一个实实在在的、正在开发中的软件产品。
不是课本上的例题,不是竞赛卷上的试题,是出了这间屋子就要被千千万万人用的东西。
陆沉看着屏幕上那行SPLI的数据。
三次样条插值,数值分析里的经典内容。
边界条件复杂时误差放大,这个问题他前世见过。
通常不是插值算法本身的问题,是边界导数的估计方法在特定数据分布下会产生病态。
标准做法是用自由边界或者固定边界的样条,但实际工程数据往往既不满足自由边界也不满足固定边界,硬套标准方法就会在边界附近出现振荡。
他站起来,走到讲台前面。
邹工让开键盘的位置。
陆沉调出样条模块的源代码,屏幕上的C语言代码一行一行地滚动。
他看代码的速度让邹工的眉毛微微扬了一下。
不是浏览,是在追踪数据流和边界处理的逻辑链条。
看到边界导数估计那一段的时候他停下来。
“问题在这里。”他指着屏幕上一段代码,“边界导数的估计用的是三点差分公式,这个公式假设边界附近的数据是光滑的,如果实际数据在边界处有突变或者曲率很大,三点差分的截断误差会急剧上升。”
邹工凑近屏幕看了一会儿。
“我们试过用五点差分,精度没改善多少。”
“不是差分点数的问题。”
陆沉把代码往下翻了几页,找到边界条件判断的那一段,“是边界条件的分类不够细。标准样条只分三种边界——固定边界、自由边界、周期边界。
但实际工程数据的边界形态远不止这三种。
你们这个模块在处理非标准边界时,会自动归到最近的标准类型里,然后硬套标准公式,这才是误差的根源。”
他在键盘上敲了几行,在边界条件判断模块里加了一个新的分支——非标准边界预处理。
思路很简单:在进入样条求解之前,先用一个低阶多项式对边界附近的几个点做局部拟合,用拟合曲线的端点导数代替原来的差分估计。
这样做相当于在边界处加了一个缓冲区,让边界条件从非标准平滑过渡到标准类型能处理的范畴。
邹工看着陆沉加的代码,沉默了好一会儿。
他搞了十几年软件,一眼就能看出一个改动的本质。
陆沉加的那几行代码,从语法上看平平无奇,但从数值计算的角度看,是把一个开放性问题转化为了一个可求解的问题!
“我回去让测试组跑一遍。”
邹工把修改后的代码保存到软盘里,拔出软盘的时候他看了看那张黑色的小方块,又看了看陆沉,“小伙子,你几岁了?”
“十一。”
邹工把软盘装进公文包,拉上拉链。
“我儿子十六岁,连BASIC都还没学明白。”
他摇了摇头,然后从公文包侧袋里掏出一张名片递给陆沉,“上面有我电话,以后要是想了解计算机方面的事,直接找我。”
名片上印着中国计算机发展公司软件部邹世明,地址是HD区中关村路某某号。
陆沉把名片收进便签本里,和索科洛夫那张并排放着。
两张名片,一张白底黑字俄文英文,一张浅灰色底烫金中文。
两个世界,同一个方向。
邹工走的时候在门口停了一下,回头看着活动室里的队员们。
“你们这些孩子,可能不知道自己在做什么,你们觉得只是在解题,在竞赛,在拿奖牌,但实际上——”
他拍了拍公文包里的软盘,“你们已经在参与这个国家正在发生的事了。十年以后你们回头看今天,就会明白我的意思。”
门关上了。
活动室里安静了几秒,然后被一阵兴奋的议论声淹没。
陈志远第一个冲上去摸那台笔记本电脑——邹工忘了带走,或者说故意留下让队员们多玩一会儿的。
机器还开着,屏幕上DOS提示符一闪一闪。
陈志远小心翼翼地敲了一个DIR命令,硬盘里的文件目录哗哗地滚上来,每一个文件名都让他眼睛发亮。
顾小北在旁边看着,忽然冒出一句:“你们说,邹工说的十年以后——十年以后我们在干什么?”
没有人能回答这个问题。
十年以后是2000年,二十一世纪的开端。
对于这群十几岁的少年来说,十年是一个长得几乎无法想象的时间跨度。
但那个黑色的小方块就摆在桌上,三寸半的软盘还插在驱动器里,屏幕上绿莹莹的光映在每个人的脸上。
十年以后是什么样的,没人知道。
但他们此刻正把手放在通往那个不知道的门把手上。