There are algorithms that depend on being able to send more symbols
than equations and obtain a dictionary containing the symbols solved
for and their values, so *not* returning the symbol information in
some way is not an option. This being the case we have to figure out
the cleanest way to send back symbol/value information every time.

Can we move forward with one of these options?

OPTION A

Return a FiniteSet of Dict results and (if explicit symbols were given
or the system is univariate) allow the list=True option to have values
or tuples of values returned? (If explicit symbols are not given and
the solution is multivariate, then raise an error if the list option
is selected.)

 solve(x-1)
{{x:1}}
 solve(x-1, list=True)
[-1]
 solve(x-y)
{{x: y}}
 solve(x-y, list=True)
Error
 solve((x+y-5,x-y,1))
{{x:2, y:3}}
 solve((x+y-5,x-y,1), list=1)
Error
 solve((x+y-5,x-y,1), x,y, list=1)
[(2, 3)]

Given the standard solution (FiniteSet of Dicts)
eq.subs(list(sol)[j]) will subs the jth solution into eq
eq.subs(sol.args[j]) will subs the jth solution into eq

OPTION B

Return a tuple: the symbols solved for and the set of solns for single
equation system, and multi-equation systems could return as (symbol
list, set of soln tuples) so there would only be two return types.

 solve(x-1)
(x, {1})
 solve(x**2-1)
(x, {-1, 1})
 solve(x**2-y)
(y, {x**2})
 solve(x**2-y, x)
(x, {-sqrt(y), sqrt(y)})
 solve((x+y-5,x-y,1), x,y)
((x, y), {(2, 3)})

eq.subs(zip(sol[0], list(sol[1])[j])) will subs the jth solution into
eq
eq.subs(zip(sol[0], sol[1].args[j])) will subs the jth solution into
eq

Unless FiniteSet is made indexable, it is a pain to work with as a
container for solutions since to access a given solution, you have to
convert the FiniteSet to a list or else use args. Is there any reason
to not allow FiniteSet to be indexable?

/c

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To post to this group, send email to sympy@googlegroups.com.
To unsubscribe from this group, send email to 
sympy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sympy?hl=en.

Reply via email to