matlab的小问题用MATLAB计算三次根号下-8.a=-8;r_a=a^(1/3) ;p=[1,0,0,-a]; R=roots(p) 得到R =-2.0000 1.0000 + 1.7321i1.0000 - 1.7321i我想问为什么会有下面的两个根呢?

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/23 13:24:29
matlab的小问题用MATLAB计算三次根号下-8.a=-8;r_a=a^(1/3);p=[1,0,0,-a];R=roots(p)得到R=-2.00001.0000+1.7321i1.0000-1

matlab的小问题用MATLAB计算三次根号下-8.a=-8;r_a=a^(1/3) ;p=[1,0,0,-a]; R=roots(p) 得到R =-2.0000 1.0000 + 1.7321i1.0000 - 1.7321i我想问为什么会有下面的两个根呢?
matlab的小问题
用MATLAB计算三次根号下-8.
a=-8;
r_a=a^(1/3) ;
p=[1,0,0,-a];
R=roots(p)
得到
R =
-2.0000
1.0000 + 1.7321i
1.0000 - 1.7321i
我想问为什么会有下面的两个根呢?

matlab的小问题用MATLAB计算三次根号下-8.a=-8;r_a=a^(1/3) ;p=[1,0,0,-a]; R=roots(p) 得到R =-2.0000 1.0000 + 1.7321i1.0000 - 1.7321i我想问为什么会有下面的两个根呢?
在MATLAB点的分数次方计算中,底数不是以我们正常认为的实数做法出现的
例如:初中生都知道(-8)^(1/3)=-2,但用MATLAB算出的结果却是1+1.7321i.
说明在MATLAB中-8不是-8,而是8(cos(π)+isin(π)),这样,在作开三次根号时就有2(cos(π/3)+isin(π/3))=1+1.7321i.
MATLAB7.0及其以后版本中已自带一个“nthroot”命令来解决这个问题(据另一网友说在6.5中未发现这个命令,我还没有确实这个问题)