第四十九章:故障
愿你在这里,遇见真正值得阅读的故事。
  陈浩的硬体理解力確实不错。
  最后是刘宇的数学问题。
  陆沉看了看那个积分公式和被积函数,是一个振盪衰减的函数。
  刘宇用basic写了一个矩形法求积分的程序,但结果误差很大。
  “你的思路是对的,离散化,用矩形面积求和近似积分。但问题可能出在两个地方。”陆沉分析道,“第一,离散步长。这个函数在初始阶段变化剧烈,后面衰减平缓。用固定步长,要么前面精度不够,要么后面浪费计算。可以考虑用自適应步长,变化快的地方步长小一点,平缓的地方步长大一点。”
  刘宇若有所思:“自適应……就像用显微镜看细胞,密集的地方多看几眼,稀疏的地方少看几眼?”
  “对。第二,捨入误差。basic用的是单精度浮点数,有效位数有限。连续加和很多小数时,误差会累积。你可以试试用双精度变量,如果basic支持的话。或者,改变求和顺序,先加绝对值大的数,再加小的,能稍微减少误差。更根本的办法,是换用数值稳定性更好的算法,比如辛普森积分法,但实现起来复杂些。”
  陆沉一边说,一边在8086上快速写了个简单的双精度累加示例,演示误差累积。
  又简要介绍了辛普森公式的思想。
  刘宇听得非常专注,在笔记本上飞快记录。
  “数值计算……误差分析……算法稳定性……”刘宇喃喃道,仿佛打开了一扇新窗户,“我原来只觉得数学是公式和定理,没想到用到计算机上,还有这么多讲究。”
  “数学是理论,计算机是实现工具。两者结合,才能解决实际问题。”陆沉说。
  这正是他一直以来秉持的理念。
  解决了三个人的问题,窗外天色已暗。
  孙鹏心满意足地回去调试他的坦克,陈浩抱著他那张cpu流水线工厂图如获至宝,刘宇则若有所思地捧著笔记本离开了。