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

<<主页

二次方程求根

本模块演示使用有限精度的浮点数算术求解二次方程时可能出现的问题。简单地使用标准的求根公式在浮点数系统中可能导致较大误差或者完全地错误,它们由浮点运算的上溢、下溢或者抵消现象导致。

使用者首先选择在计算中使用的精度(precision),它可以是从1到10的十进制数字。二次方程的系数abc可以被显式地输入或者随机生成(choose random)或者使用预置的样例(choose example)。为了避免可能出现的上溢或下溢,还可以点击"scale by largest"按钮成比例地放大/缩小系数以使得最大的系数等于1。点击“calculate”按钮将使用标准的求根公式(Formula 2)和替代公式(Formula 2)分别计算出方程的两个根。为了比较,在最下面一行显示了高精度计算得到的正确解。可以看出,每个公式都产生一个准确的根和一个明显错误的根。

在这个模块中,随机生成的系数会保证生成的二次方程的根是实数。为了更好地说明问题,系数被轻微地调整以使得求根公式中−b和平方根之间出现抵消现象(cancellation)。

参考内容: 课本1.3.4节,例1.19相关内容。