清华大学课程“数值分析”(No.20240033)
交互演示网站

<<主页

这是一个多项式吗?

本模块以七次多项式为例演示浮点计算的误差, 也说明了数学上等价的不同算法有明显不同的准确度. 程序画出两条f(x)=(x-1)7的曲线, 左边曲线的各点根据计算(x-1)后再乘7次方得到, 右边曲线各点根据展开式x7-7x6+21x5-35x4+35x3-21x2+7x-1计算. 理论上两条曲线的形状应该完全相同, 但实际上由于计算机浮点运算的误差, 右边曲线可能完全不像多项式曲线.

使用者可以输入x变化范围的最小值, 然后点击"Draw"按钮, 程序自动画出一个长度为0.024的区间内两种方法计算出的多项式曲线, 绘图区的坐标系会自动调整是的曲线"充满"整个区域. 绘图区下方显示x取值的区间, 以及f(x)值的变化范围. 在默认情况下, 初始的x1=0.988, 此时第二种算法由于严重的抵消现象, 其结果有很大的(相对)误差, 得到的右边曲线完全不像多项式曲线. 而直接用公式(x-1)7计算误差很小, 得到左边平滑的曲线. 使用者可输入其他值看看两种算法的结果是否有区别. 点击"Reset"按钮恢复到x1的默认值.

参考内容: 课本1.3节相关内容.