问题标题:
为什么用用MATLAB计算-8的1/3次方不能得到-2呢?>>a=-8;r=a^(1/3)r=1.0000+1.7321i得到的结果是这个复数,我是新手,刚接触,
问题描述:
为什么用用MATLAB计算-8的1/3次方不能得到-2呢?>>a=-8;r=a^(1/3)r=1.0000+1.7321i得到的结果是这个复数,我是新手,刚接触,
沈工所回答:
这个问题的原因是,Matlab的乘方计算的时候总是返回幅角绝对值最小的那个数值结果学过复变函数和复数的网友都知道a=-8;r=a^(1/3)有三个根,但是1.0000+1.7321i幅角绝对值最小,我们实数范围的-2由于幅角是180°,比现在这个大多了如果想得到所有根,请使用roots和solve函数>>solve('x^3+8')ans=-21+i*3^(1/2)1-i*3^(1/2)>>symsx>>y=x^3+8y=x^3+8>>p=sym2poly(y)p=1008>>roots(p)ans=-2.00001.0000+1.7321i1.0000-1.7321i
点击显示
数学推荐
热门数学推荐