On Sep 13, 12:08 pm, Pong <wypon...@gmail.com> wrote:
> y,z=var('y,z'); solve(6*x + 10*y + 15*z ==1,x,y,z) gives
> ([{x: -5/3*y - 5/2*z + 1/6}], [1])

So wacky.  Definitely a bug, needless to say.

> ([x == -y + 3], [1])
>
> My questions are:
> 1) Why the notation are different in the 2 and 3-variable case? One
> gives x: and the other x==
>

Well, you are asking for solutions to both x *and* y, but the solve is
really designed to solve one in terms of the other(s).  I just think
no one has pointed out this weirdness before.  So you are using it in
a way it wasn't intended.   I'm not sure whether we should add the
use, or have a warning, or both, or neither, or documentation, or...

> 2) What the [1] in both cases stand for ?

Compare:

sage: a = x+y==3
sage: type(a)
<type 'sage.symbolic.expression.Expression'>
sage: a.solve(x,y)
([x == -y + 3], [1])
sage: a.solve(x,False)
[x == -y + 3]
sage: a.solve(x,True)
([x == -y + 3], [1])

So we are giving a non-False input to the second argument (whether we
should get multiplicities) and so we get a multiplicity of 1. Which
doesn't really make sense anyway.

Maybe we should put in a check for the expression having more than one
variable before we send it to a.solve(), or maybe it just needs that
long-awaited rewrite... see http://trac.sagemath.org/sage_trac/wiki/symbolics
for some issues with solve.

> 3) In order to get the parameters appear in the solution, one need to
> add a redundant equation. Shall we improve on that?
> e.g.
> solve([x+y==3,2*x+2*y==6],x,y)
> [[x == -r1 + 3, y == r1]]

I think this is because when you do that, now the input is multiple,
and instead of doing Expression.solve(), it does the main solve()
routine, which deals with this.

Thoughts from others who care about "solve"?  I'm not quite sure what
the best solution is.  The easiest one is making really big letters in
the documentation that say "don't do this" and trying to catch these
cases.

- kcrisman

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to