我试图了解求解与(b)项相比(4ac)项较小的二次方程时出现的精度损失。
我知道我们要减去彼此接近的数字,结果接近于零。但是,如果我们始终以相同的非常小的数字(接近于零)为目标,那么我不十分清楚为什么要使用替代算法来计算该解决方案。我浏览了有关此问题的Wikipedia文章,但我不明白。谁能为我的问题提供更多的见解或资源,让我更好地理解它?
非常感谢您的帮助。
答案 0 :(得分:4)
在经典的二次公式中,(− b ±sqrt( b 2 −4 ac )) /(2 a ),当4 ac 小于 b 2 时,会出现问题,因为:>
另一方面,方程式的另一种解决方案是从(正)平方根加到正的- b 或从负的- b减去它得到的。 -不会遇到此问题。它是一个较大的数字,大约为-2 b ,因此sqrt( b 2 -4 ac )相对而言较小。
因此,建议是先计算此解决方案 x 1 ,然后使用它来找到解决方案 x 2 = c /( ax 1 )。