我目前正处于调试过程中,我发现这种情况正在发生,破坏了一切。作为参考,f = @(x)a x ^ 3 + b x ^ 2 + c * x + d(在这种特定情况下,a = 2,b = -7,c = - 8,d = 16)。
另外,我注意到temp == -1.6861返回false ..
答案 0 :(得分:2)
这是一个典型的浮点问题。你的号码不是-1.6861,但接近它。尝试format long
,然后查看temp
。或者甚至更好,试试sprintf('%25.20f',temp)
。 temp
是函数f
的根,应该是,但不完全是-1.6861。
你实际上必须非常小心:
(1/3-7/3/7)==0
是假的,因为
>> (1/3-7/3/7)
ans =
-5.5511e-17