y=exp(pi/3*1i); syms x;y^-6(y^-6)*xans =1.0000 + 0

发布时间:2021-02-26 09:34:18

y=exp(pi/3*1i); syms x;y^-6(y^-6)*xans =1.0000 + 0.0000ians =x*((2111062325329919*i)/2535301200456458802993406410752 + 1)为什么最后的结果ans不等于 x*(1.0000 + 0.0000i)?

网友回答

ans =x*((2111062325329919*i)/2535301200456458802993406410752 + 1)
>> vpa(ans,6)
ans =x*(8.32667*10^(-16)*i + 1.0)%
这是因为第二个ans是符号类型的,默认以分数形式出现,这样显示误差会最小
而第一个ans是数值型的,默认以小数显示 ,实际上是有误差的,并且比较大
另外>> format long
>> y^-6ans = 1.000000000000000 + 0.000000000000001i%不完全是0i,这个是显然的
>> vpa(ans,10)%将他转换为符号类型,和上面的是类似的
ans =8.326672685*10^(-16)*i + 1.0
以上问题属网友观点,不代表本站立场,仅供参考!