tomding 发表于 2009-3-3 10:15

为什么 (-2)^(0.2)在matlab中得到的结果是虚数呢?

为什么 (-2)^(0.2)在matlab中得到的结果是虚数呢?

ans =

   0.9293 + 0.6752i

而计算器计算(-2)^(0.2)的结果为-1.148698,正确结果确实是-1.148698,为什么matlab的结果和计算器结果不一致?

frinim 发表于 2009-3-3 16:47

全部方根计算如下:
a=-2;
m=;
R=abs(a)^0.2;
Theta=(angle(a)+2*pi*m)/5;
rrr=R*exp(i*Theta);

rrr =
Columns 1 through 4
   0.9293 + 0.6752i-0.3550 + 1.0925i-1.1487 + 0.0000i-0.3550 - 1.0925i
Column 5
   0.9293 - 0.6752i

其中 -1.1487 + 0.0000i就是你要的结果

frinim 发表于 2009-3-3 16:47

如果直接用(-2)^0.2,那么只会返回第一个值(m=0),也就是返回第一象限的复数。
其实求a^b应该这样写程序
a=-2;b=0.2
r=a*abs(a)^(b-1)

tomding 发表于 2009-3-4 09:48

好像有点明白了,谢谢楼上了
页: [1]
查看完整版本: 为什么 (-2)^(0.2)在matlab中得到的结果是虚数呢?