solve() returns the symbol not the solution

I am trying to use solve() and it does not seem to be working. It keeps returning the symbol I am solving for, not a solution. I tried using sample code from the documentation and it still gives the same answer.
syms a b c x
eqn = a*x^2 + b*x + c == 0;
solx = solve(eqn, x)
solx =
x

Answers (1)

It returns exactly what it should:
solx =
-(b + (b^2 - 4*a*c)^(1/2))/(2*a)
-(b - (b^2 - 4*a*c)^(1/2))/(2*a)
If you want a numeric answer, you have to supply numeric values for ‘a’, ‘b’, and ‘c’. (You might also want to use the vpasolve function if you want a strictly numeric result.)

3 Comments

While Star is exactly correct here, that solve SHOULD return the solution as shown, IF Ryan is getting solx == x, then most likely he has messed up the expression stored in eqn, as otherwise, solve would have been successful. This is a common error, for someone to not realize that they do not have what they think is stored in a variable. Since MATLAB will never lie, the implication is Ryan must be mistaken as to what is in those variables. +1 anyway.
What I posted was copy and pasted from the documentation, there is no mistake in Eqn. The answer is the last line , solx = x. I did not get the -(b + (b^2 - 4*a*c)^(1/2))/(2*a) answer as Star returned.
It seems I must have a problem with the symbolic package. MuPad is missing as well.
To find out if you have the Symbolic Math Toolbox, type:
ver
in the Command Window. If you have the Toolbox, it should be listed.
If it is listed, and you still cannot access its functions, type in the Command Window:
restoredefaultpath
rehash toolboxcache
then see if your code works.
If you’re still having problems after that, contact MathWorks Technical Support.

Sign in to comment.

Tags

Asked:

on 15 Mar 2015

Commented:

on 16 Mar 2015

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!