未注册
2008-11-11, 12:16
为什么同一个方程把 0.3 写成 3/10 和 0.3 解出来的结果不一样,而且第一个ans数据类型是结构体,里边还出现了虚数单位 i !! 这是怎么回事?
>> 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
==================
%=====定义一个函数=====
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') 也一样的问题
>> 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
==================
%=====定义一个函数=====
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') 也一样的问题