MATLAB solve() 的问题?
发布网友
发布时间:2024-10-13 12:48
我来回答
共2个回答
热心网友
时间:2024-10-14 04:46
eval(solve('0.3+2*x^3-3*x^2 '))
%%
eval(solve('3./10+2*x^3-3*x^2 '))
分数和小数在计算的时候他不会自动的转换,对于SOLVE()的输出s是已构架数组。。。
可以通过上述方法排除。。。。
热心网友
时间:2024-10-14 04:40
%=====定义一个函数=====
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
>>