| 1 | initial version |
I have now looked at the underlying code for solve. It turns out that if the first argument of solve is an equation or a list of just one equation the object function sage.symbolic.expression.Expression.solve is used. This explains why the output of
solve([sin(x)==0,sin(x)==0],x
and
solve([sin(x)==0],x)
may differ. To force to get all solutions in the first case one can use
solve(sin(x)==0,x,to_poly_solve='force')
Another thing I've found out is that in the definition of the underlying maxima function solve is declared as
solve ([eqn_1, …, eqn_n], [x_1, …, x_n]) so the number of equations should match the number of variables.
If one reformulates the problem to
solve(-sin(x)*sin(x)==0,x,to_poly_solve='force')
all solutions will be displayed.
However I liked the behaviour of previous Versions of sage That is: If solve could't find a solution the original equation was returned. That way it was clear that there may exist solutions sage could not found.
Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.