声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2738|回复: 3

[综合讨论] 为什么 (-2)^(0.2)在matlab中得到的结果是虚数呢?

[复制链接]
发表于 2009-3-3 10:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

ans =

   0.9293 + 0.6752i

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

使用道具 举报

发表于 2009-3-3 16:47 | 显示全部楼层
全部方根计算如下:
a=-2;
m=[0,1,2,3,4];
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  就是你要的结果

评分

1

查看全部评分

发表于 2009-3-3 16:47 | 显示全部楼层
如果直接用(-2)^0.2,那么只会返回第一个值(m=0),也就是返回第一象限的复数。
其实求a^b应该这样写程序
a=-2;b=0.2
r=a*abs(a)^(b-1)
 楼主| 发表于 2009-3-4 09:48 | 显示全部楼层
好像有点明白了,谢谢楼上了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-6-1 11:06 , Processed in 0.097010 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表