(-8)^(-2/3)返回错误的结果



我使用的是Matlab R2020b(Mac OS 12.0.1(。

当我输入(-8(^(-2/3(时,它返回:

ans =
-0.1250 - 0.2165i

不是应该是0.2500吗?

将负数提升为分数幂是一个复杂的多值运算。MATLAB只是为您选择一个解决方案。例如,对于(-8(^(1/3(的解。从以下多项式方程的根开始:

x^3+8=0

使用MATLAB:

>> roots([1 0 0 8])
ans =
-2.0000 + 0.0000i
1.0000 + 1.7321i
1.0000 - 1.7321i

然后将这个结果提高到-2次方收益率:

>> ans.^-2
ans =
0.2500 + 0.0000i
-0.1250 - 0.2165i
-0.1250 + 0.2165i

MATLAB恰好为您提供了(-8(^(-2/3(计算的第二个解决方案。

底线:每当你处理复杂的多值运算时,如果你想要特定的结果,你需要在代码中考虑到这一点,因为MATLAB可能会选择其他东西。

取决于计算顺序。

(-8)^(-2/3)的意思是将-2除以3,然后将-8提高到该幂。

但如果你改为((-8)^(-2))^(1/3)nthroot((-8)^(-2),3),你会得到0.25。

相关内容

  • 没有找到相关文章

最新更新