问题:为什么同一个方程把 0.3 写成 3/10 和 0.3 解出来的结果不一样,而且第一个ans数据类型是结构体,里边还出现了虚数单位 i !! 这是怎么回事?%=====定义一个函数=====function U = E_U( E,x)U = U=E+2*x.^3-3*x.^2;%========>>E=0.3;>>syms x;>> y=E_U(E,x) y = 3/10+2*x^3-3*x^2>>solve(y)就得到下面的结果,用solve(0.3+2*x^3-3*x^2)正常。 我要在一个循环里边用到 solve(y) 没法一个个改成小数,请问怎么办。>> solve(10/3+2*x^3-3*x^2,x) ans = -1/6*(153+18*70^(1/2))^(1/3)-3/2/(153+18*70^(1/2))^(1/3)+1/2 1/12*(153+18*70^(1/2))^(1/3)+3/4/(153+18*70^(1/2))^(1/3)+1/2+1/2*i*3^(1/2)*(-1/6*(153+18*70^(1/2))^(1/3)+3/2/(153+18*70^(1/2))^(1/3)) 1/12*(153+18*70^(1/2))^(1/3)+3/4/(153+18*70^(1/2))^(1/3)+1/2-1/2*i*3^(1/2)*(-1/6*(153+18*70^(1/2))^(1/3)+3/2/(153+18*70^(1/2))^(1/3)) >> solve(0.3+2*x^3-3*x^2,x) ans = -.28951924828608542762680297014191 .36325749109056761357673427729897 1.4262617571955178140500686928429 >>
eval(solve('0.3+2*x^3-3*x^2 ')) %% eval(solve('3./10+2*x^3-3*x^2 '))
分数和小数在计算的时候他不会自动的转换,对于SOLVE()的输出s是已构架数组。。。
可以通过上述方法排除。。。。 如果你对为什么同一个方程把 0.3 写成 3/10 和 0.3 解出来的结果不一样,而且第一个ans数据类型是结构体,里边还出现了虚数单位 i !! 这是怎么回事?%=====定义一个函数=====function U = E_U( E,x)U = U=E+2*x.^3-3*x.^2;%========>>E=0.3;>>syms x;>> y=E_U(E,x) y = 3/10+2*x^3-3*x^2>>solve(y)就得到下面的结果,用solve(0.3+2*x^3-3*x^2)正常。 我要在一个循环里边用到 solve(y) 没法一个个改成小数,请问怎么办。>> solve(10/3+2*x^3-3*x^2,x) ans = -1/6*(153+18*70^(1/2))^(1/3)-3/2/(153+18*70^(1/2))^(1/3)+1/2 1/12*(153+18*70^(1/2))^(1/3)+3/4/(153+18*70^(1/2))^(1/3)+1/2+1/2*i*3^(1/2)*(-1/6*(153+18*70^(1/2))^(1/3)+3/2/(153+18*70^(1/2))^(1/3)) 1/12*(153+18*70^(1/2))^(1/3)+3/4/(153+18*70^(1/2))^(1/3)+1/2-1/2*i*3^(1/2)*(-1/6*(153+18*70^(1/2))^(1/3)+3/2/(153+18*70^(1/2))^(1/3)) >> solve(0.3+2*x^3-3*x^2,x) ans = -.28951924828608542762680297014191 .36325749109056761357673427729897 1.4262617571955178140500686928429 >>这个问题有好的意见或
建议,请留言
|