给定方程ax^2 + bx + c
,我们知道判别式 D = b^2 - 4ac
告诉我们方程是否有两个不同的根 D > 0
,一个重复根D = 0
,或者没有真正的根D < 0
。显然,如果判别式为零,则误差可能使其为正或负,具体取决于误差较大的位置。
证明如果判别式非零,则浮点计算中没有错误可以翻转其符号(即从正到负,或从负到正)。错误会使判别式为零吗?
我知道这与实际编程无关,但我到底如何证明 floating point calculation error of the discriminant
是不可能的?导致正判别式 D 以某种方式变为负值,反之亦然。
最佳答案
如果评估判别式产生非零结果,则它与数学上精确的判别式具有相同的符号,这种说法是不正确的。由于这是一个作业题,所以暂时不多说了,只是提示一下:即使最终结果不超出 float 的范围,也可能会发生下溢或溢出。
关于浮点运算错误界限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5560140/