MATLAB: Solve function does not give me value of root

solvesyms

my code is simple:
syms x y a b c
a=0.5;
b=0.0092;
c=0.04;
y=x^2+1/x^3;
solve(a*x^2+b*y+c)
matlab gives:
ans =
RootOf(z^5 + (100*z^3)/1273 + 23/1273, z)[1]
RootOf(z^5 + (100*z^3)/1273 + 23/1273, z)[2]
RootOf(z^5 + (100*z^3)/1273 + 23/1273, z)[3]
RootOf(z^5 + (100*z^3)/1273 + 23/1273, z)[4]
RootOf(z^5 + (100*z^3)/1273 + 23/1273, z)[5]
BUT, when I change y to y=x^2+1
matlab gives:
ans =
-(156579^(1/2)*1i)/1273
(156579^(1/2)*1i)/1273
WHY is that? I dont see there is so much difference. hope someone could help me, THanks!!

Best Answer

Use the vpasolve function instead:
syms x y a b c
a=0.5;
b=0.0092;
c=0.04;
y=x^2+1/x^3;
x_sol = vpasolve(a*x^2+b*y+c)
x_sol =
-0.4157571755823635878339736950704
- 0.12544667013145313389016347683479 - 0.46115251800229378352756949075526i
- 0.12544667013145313389016347683479 + 0.46115251800229378352756949075526i
0.33332525792263492780715032437 - 0.28135841861289745219925388215346i
0.33332525792263492780715032437 + 0.28135841861289745219925388215346i