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
回答(1 个)
Star Strider
2015-3-15
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 个评论
John D'Errico
2015-3-15
编辑:John D'Errico
2015-3-15
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
2015-3-16
Star Strider
2015-3-16
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.
类别
在 帮助中心 和 File Exchange 中查找有关 Programming 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!