Well we'd have to audit the heuristics to see what steps are really giving all solutions.
Also, some solutions can't be represented in closed form, like cos(x) = x. So I think to solve this right, we really need three things: - Refactor the solvers into hints (so we can easily separate those solvers that give all solutions from those that don't). - An unevaluated Solve object. This has problems of its own, like how to canonically separate solutions, and how to know that there is a solution there at all. - A way to represent infinite solutions (and have that actually be implemented in the solvers). Aaron Meurer On Sun, Jan 19, 2014 at 5:46 AM, Sergey Kirpichev <[email protected]> wrote: > > On Sunday, January 19, 2014 4:32:38 AM UTC+4, Aaron Meurer wrote: >> >> Oh, and I forgot that another prerequisite is a way for solve() to >> state that it knows that it has found *all* the solutions. Otherwise, >> if you code the basic algorithm that finds all the critical points, >> you may miss some simply by virtue of solve() not finding it, and >> thereby potentially get wrong answers. > > > IMHO, it's a solve() problem. It should return all solutions, or signal > a failure in some conventional way (e.g. raise an error). In particular, > it can *fail* due to wrong heuristics. Real issue here - how to represent > some solutions (e.g. sin(x)==0). > > Let's document how to detect that solve() was unsuccessful, and then > we can write code that expects solve() works as documented. > > -- > You received this message because you are subscribed to the Google Groups > "sympy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/sympy. > For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.
