我在matlab中发生了一件奇怪的事情。我试着计算以下简单的一行:
>> -0.5800^3+2*(-0.5800^2)+70*-0.5800+40
ans =
-1.4679
但是,当我使用指定的变量(a)计算结果时,结果会有所不同:
>> a = -0.5800;
>> c = a^3+2*(a^2)+70*a+40
c =
-0.1223
我多次忽略它以确保我没有犯下一个愚蠢的错误。我错过了MATLAB在这些情况下做的不同(用变量计算)?我的计算器给出了最高结果。提前感谢您的澄清!
答案 0 :(得分:3)
-0.5800^3+2*(-0.5800^2)+70*-0.5800+40
= -(0.5800^3)+2*(-(0.5800^2))+70*-0.5800+40
= -1.4679
但是对于变量,它被读作:
(-0.5800)^3+2*((-0.5800)^2)+70*-0.5800+40
= -0.1223
注意括号和运算符优先级。
答案 1 :(得分:3)
嗨问题是由于
(-0.5800^2)
计算为
-(0.5800^2)