solve() returns the symbol not the solution
Ältere Kommentare anzeigen
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
Antworten (1)
Star Strider
am 15 Mär. 2015
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 Kommentare
John D'Errico
am 15 Mär. 2015
Bearbeitet: John D'Errico
am 15 Mär. 2015
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.
Ryan Good
am 16 Mär. 2015
Star Strider
am 16 Mär. 2015
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.
Kategorien
Mehr zu Common Operations finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!