shuidixn 发表于 2012-9-3 10:40

复数的立方根问题求助

比如:(1+2i)^3
ans =

-11.0000 - 2.0000i

但是
我求 立方根
(-11.0000 - 2.0000i)^(1/3)
ans =

   1.2321 - 1.8660i

也就是
((1+2i)^3)(1/3)不等于1+2i
这个问题可能很简单,可是我一直想不明白,希望高人点拨一下

ChaChing 发表于 2012-9-3 23:13

有些感嘆这版块竟出现广告没人处理!? 高手们也越来越不出手:'(

先举例LZ试试便知a=2; aa=a^2
a=-2; aa=a^2
aa^(1/2)再试试syms x y
a=-2; aa=a^2
solve(subs('x^2-y',y,aa))

shuidixn 发表于 2012-9-4 11:19

回复 2 # ChaChing 的帖子

嗯嗯,多谢多谢。昨天一早确实看到了广告,而且貌似到中午都还在的

rocwoods 发表于 2012-9-4 12:59

回复 1 # shuidixn 的帖子

求实根用nthroot,求全部的方根有rootsroots()

ChaChing 发表于 2012-9-4 23:20

回复 4 # rocwoods 的帖子

Chaching老兄申请权限管理
吴老弟别开玩笑了!
我只是搞振动工作的老小工, matlab只是因懒得写些基本数值运算流程而採用的工具, 每次都是有需求才开始找找现成函数用用罢了! 懂得真的有限
况且私事已佔去个人绝大部分私人时间, 上工时间又被赋予以前没学过的东西, 老了又基础差, 学习新东西真的很累!
现在大都仅能来评评分顺便学习, 懒得亲手试了:@)

VibrationMaster 发表于 2012-9-9 09:17

看: (-i)^=-1
(-1)^(1/2)=i 不等于-i

猜测的原因: 在复平面上, n次方根的逆方程有n个解, Matlab(或者一般的复变函数理论)只选择相角最小的那个解.--仅仅是我的猜测

shuidixn 发表于 2012-9-9 11:46

VibrationMaster 发表于 2012-9-9 09:17 static/image/common/back.gif
看: (-i)^=-1
(-1)^(1/2)=i 不等于-i



嗯嗯,有道理,我又用8试了一下,

(8)^(1/3)

ans =

   2

>> roots()

ans =

-1.0000 + 1.7321i
-1.0000 - 1.7321i
   2.0000         
,在后面使用roots命令时,应该怎样把这里面的实数根给取出来?

VibrationMaster 发表于 2012-9-9 18:05

回复 7 # shuidixn 的帖子

1. 如果只有实数解, Matlab显然是没有问题.
2. 如果有多个复数解,取相角小者,比如取实数的相角就等于零.

ChaChing 发表于 2012-9-9 22:22

VibrationMaster 发表于 2012-9-9 18:05 static/image/common/back.gif
回复 7 # shuidixn 的帖子

1. 如果只有实数解, Matlab显然是没有问题.


不解!? 个人的了解
4^(1/2)本来就不是要求x^2=4的解
(8)^(1/3)本来就不是要求x^3=8的解

VibrationMaster 发表于 2012-9-10 06:16

回复 9 # ChaChing 的帖子

x^2=1 有两个解,-1和1,而 1^(1/2)取正的那个
x^2=-1 也有两个解,-i和i,而(-1)^(1/2)取i
但是 x^2=i 也有两个解(Sqrt+i Sqrt)/2和(-Sqrt-i Sqrt)/2, 那i^(1/2)究竟取哪个值呢?

ChaChing 发表于 2012-9-10 22:20

回复 10 # VibrationMaster 的帖子

稍微google复习下, 有些了解老师的意思了!
工程计算久了, 已经把x^2=1的解当成1^(1/2)和-1^(1/2)了
谢谢老师的耐心
页: [1]
查看完整版本: 复数的立方根问题求助