
第32章 简陋的计算机房
庄国栋对于陆航这种天马行空的思维感到惊奇和意外。
抛物线轨道方程他认识,斐波那契数列他也认识,但一时间却不会想到将二者进行结合。
而陆航却能短短几天内考虑到这一层,这份天赋也是奇哉怪也了。
见状,陆航便绘声绘色的描述起来:
“发现斐波那契数列的过程,还是比较偶然的。”
“起因是我坐在静园的向日葵林里思考问题,突然一株向日葵的花盘掉了下来,正好砸在我脑袋上,于是我就思考起来……”
庄教授听完撇了下嘴,哼笑一声,
“接下来你是不是就该发现万有引力定律了?晚了,牛顿老爷子几百年前就用过这个故事了!”
陆航悻悻一笑,“总之,我就是碰巧发现了向日葵,又联想到55、89、144这几个数字,然后灵光一现往轨道方程中引入斐波那契数列,没想到果真有效果……”
“别人怎么就没这些灵光一现?你小子啊还是有点天赋在身上的,就连我都看不透到底有多深的潜力。”
庄国栋夸奖了一句,接着认真点评起他的方案来,
“不过你的思路没错,斐波那契数列的递归性质,确实与天体轨道共振性质有些异曲同工之妙。”
“基于斐波那契的黄金分割比、黄金角的斐波那契螺旋等性质,可以优化出节能的轨道,并且减少轨道修正次数。”
“我觉得,这种计算方式未必要拘泥于这段2500公里的路程,还可以拓展到整条远曦一号的抛物线轨道,你怎么想?”
陆航啊了一声,“整条抛物线轨道都引入斐波那契数列的话,起码得数万公里的计算量吧,等我算完估计脑细胞都快死完了……”
庄国栋盯着他的脸看了会儿,敲敲桌子道:
“有话就直说,别吞吞吐吐的,我知道你小子肯定也想过把整条轨道都用斐波那契数列优化一遍。”
“大老远的来办公楼,肯定不是显摆成果来的,故意憋着不说等我开口是吧?”
陆航这才笑嘻嘻开口,“庄老师,我想去计算机房用一下电脑,如果能编个小程序进行轨道数值仿真的话,效率就会提高很多。只不过嘛,机房现在不让随便进呀。”
庄国栋推了推玳瑁眼镜,“用计算机仿真?那你会编程和写脚本吗?”
陆航说:“只是进行简单的斐波那契数值模拟,用基础的Basic语言写脚本就行了,我认为应该不难吧。”
庄教授点了点头,“那行,我给你写张条子。不过以我的权限,一月内最多给你批20小时的机时配额,自己把握好时间。”
说完,庄教授便从抽屉取出一张机时申请单,写上使用途径和机时配额后,签上自己的名字,交给了陆航。
“把这个交给机房管理员,他就会让你进了。另外,记得要随时存档,要不然条子白开了,你有软盘吗?”
陆航摇了摇头。
于是庄教授从抽屉里翻了翻,找出几张软盘交给他,
“正好我有几张,你拿去用吧,省得跑中关村去买了。还有这个……”
庄国栋又掏出来一包红梅烟。
陆航愣了下,“庄老师,我不会抽啊。”
庄国栋没好气道:“是让你塞给机房管理员的。让他给你选台好机器,要是找台破联想286,你上机200个小时都搞不定代码!”
陆航接过几张软盘和红梅烟,殷勤的笑道:“谢谢庄老师,您真大方。”
庄国栋却说:“别想美事,这几张软盘由课题经费出。不过红梅烟可得你自己掏,一包两块,回头从津贴里扣。”
只是掏一包烟钱而已,陆航仍是很高兴,点点头,接过软盘和红梅烟便奔着计算机房去了。
东航共有三座计算机房,分别位于主教学楼地下一层的机房、图书馆西侧副楼的老机房,以及计算机学院和航空计算的专用机房。
陆航去了教学楼的地下机房。
将庄国栋签字的机时申请单交给管理员后,又不露声色的把红梅烟塞过去,陆航开始穿鞋套。
计算机作为这个年代的稀缺资源,管理员的地位还是很高的,因此经常会有些‘灰色收入’,不过基本没人去追究,这包红梅烟他默不作声收下了。
过了一会儿,管理员让陆航在《机时使用登记本》签字后,给他安排了台终端编号055的计算机使用。
“带软盘了吗?过来扫一下病毒再进。”
这个年代虽然尚未出现米开朗基罗病毒,但小球病毒已开始流行。
因此连进机房都得穿鞋套的重地,对软盘病毒查的格外严。
查完庄教授送的几张软盘后,管理员确认干净才放陆航进去。
他道声谢谢,然后进入了机房。
鞋套在地板踩出嘎吱声,这里到处回荡着老式键盘的敲击声,以及满屏的DOS命令行。
各个学院的学生都在这里上机,机器型号也大不相同。
最主流的是长城、联想的IBM/PC兼容机,14寸显示屏和480p的分辨率,装着DOS/Windows双系统,4M+80M的内存和硬盘。
再就是一些来自校友捐赠、外汇购买的VAX小型机、Unix系统的SUN工作站,需要拿教务处的条子才有资格使用。
最后便是一些老式的联想286、长城286电脑,老到管理员插钥匙才能启动,因此丢在角落吃灰很久了,像一群被时代抛弃的过客。
多亏了那包红梅烟,机房管理员对陆航还不错,分配了一台崭新的长城0520电脑给他。
按下开机键,DOS-6.22系统的运行图标在桌面打开。
接着输入自己的学号密码,登陆账号。
陆航长长舒了口气,摘下书包取出那本《离散数学应用》,开始尝试编程。
这台电脑主要支持Turbo语言和Basic语言,如果只是拿来开发小型数值算法和简单的数据模拟,他觉得用Basic语言就可以了。
所幸原主大二时选修过Basic语言的课程,因此陆航动起手来不算生疏。
更何况仅是编译一个轨道数值仿真的小程序而已,自己只需要用Basic编写斐波那契数列的插值、数值积分算法的脚本即可。
陆航一边琢磨着,一边慢吞吞敲打键盘。
他需要在这个工具中,使用斐波那契搜索法快速收敛到最优的引力弹弓参数,例如最小近拱点或者最大速度增量等。
“定义参数搜索区间为[1.1,2.0]倍行星半径,按照斐波那契数列分割区间,逐步缩小范围,直到找到速度增量最大的近拱点距离……”
“把每两次脉冲推进的轨道记为一段,在一段轨道中,引力弹弓之前的轨道用开普勒算法自动求解,之后的轨道用Lambert算法自动求解……”
“变量个数为4N+1,设计变量中增加金星引力辅助的近拱距r和相对倾角i,以及探测器的初始质量m0……”
“靠,这啃臭键怎么又没反应啊……”