matlab结果显示为表达式,为何不能计算结果

%想应用matlab求出x2的值,再通过x2与x1,x3,x4,x5的关系式,
求出x1,x3,x4,x5的值,但是matlab输出结果只有x2的值,
x1,x3,x4,x5都是表达式呈现的,没有数值结果。
大致程序如下,请求大家指点


syms x1 x2 x3 x4 x5
F=0.5;
B=30;
f1=(x2/(2+x2))*(1-x2)*(1-((-5+F+120*(x2/(x2+12)))*((F*(B-x2))/(F/0.2+20))/F/200))*(1-(2+F/0.02+50*(0.6/(F*x2))));
solution=vpasolve(f1,x2,[0,3000])
x1=(F*(B-x2))/(123+F+50*x2);
x3=(10+F+5*x2)*((F*(B-x2))/(F+5*x2)); 
x4=(-5+F*4+5*(x2/(5*x2+5)))*((4+F/0.1+20*(x2/(x2+10)))); 
x5=(-5+F+(x2/(x2+2)))*(10/F+12/(F*x2))*((F*(B-x2))/(F+(x2/(x2+B))));
p1=[x1,x2,x3,x4,x5]


你好,把solution改成x2就行拉

syms x2
F=0.5;
B=30;
f1=(x2/(2+x2))*(1-x2)*(1-((-5+F+120*(x2/(x2+12)))*((F*(B-x2))/(F/0.2+20))/F/200))*(1-(2+F/0.02+50*(0.6/(F*x2))));
x2=vpasolve(f1,x2,[0,3000]);
x1=(F*(B-x2))./(123+F+50*x2);
x3=(10+F+5*x2).*((F*(B-x2))./(F+5*x2)); 
x4=(-5+F*4+5*(x2./(5*x2+5))).*((4+F/0.1+20*(x2./(x2+10)))); 
x5=(-5+F+(x2./(x2+2))).*(10/F+12./(F*x2)).*((F*(B-x2))./(F+(x2./(x2+B))));
p1=[x1,x2,x3,x4,x5]

结果:

p1 =
 
[                              30/247,   0,                               315,                                -27,                               -Inf]
[ 0.083573487031700288184438040345821, 1.0, 40.863636363636363636363636363636, -27.045454545454545454545454545455, -4994.4444444444444444444444444444]

可见有5列呢

你这个是符号变量,你的x1,x2,x3,x4,x5都没赋值,那肯定输出的是表达式,不是数值结果