直接计算在MATLAB中给出了其他结果

时间:2014-01-11 22:27:46

标签: matlab variables

我在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在这些情况下做的不同(用变量计算)?我的计算器给出了最高结果。提前感谢您的澄清!

2 个答案:

答案 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)