MathGroup Archive 1998

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Solve: More solutions faster in 3.0!?

Matthias Weber wrote:
> A happy, bug-free new year to everybody.
> I tried to solve the system of polynomial equations below
> Solve[{2*a2^2*x0 + 2*a2*a3*x1 - 4*a1*a2*x0*x1 - 2*a1*a3*x1^2 +
>        2*a1^2*x0*x1^2, 2*a2*a3*x0 - 2*a1*a2*x0^2 + 2*a3^2*x1 -
>        4*a1*a3*x0*x1 + 2*a1^2*x0^2*x1,
>       2*a2^2*x0^2 + 4*a2*a3*x0*x1 - 2*a1*a2*x0^2*x1 + 2*a3^2*x1^2 -
>        2*a1*a3*x0*x1^2, -2*a1*a2*x0 + 2*a2*a3*x0^2 + 2*a1*a3*x1 +
>        a0^2*x0*x1 + 2*a1*a3*x0^2*x1 + 2*a2*a3*x1^2 + 2*a1*a2*x0*x1^2,
>       a2^2*x0^2 + 2*a2*a3*x0*x1 - 2*a1*a2*x0^2*x1 + a3^2*x1^2 -
>        2*a1*a3*x0*x1^2 + a1^2*x0^2*x1^2} == {0, 0, 0, 0, 0}, {x0, x1}]
> in Mathematica 3.0
> on a PowerMac and got a bunch of solutions, including
> {x0 -> 0, x1 -> a2/a1}
> which is not a solution unless a2 and a3 are both zero. This feature
> does not exist in version 2.2, which displays all solutions (the
> singular points of a Kummer surface in an affine ccordinate chart of a
> singular plane) correctly (needing more time for it, however).  I
> realize that the system above looks overdetermined, and I have the
> impression that Mathematica is content in solving the equations for the
> variables using *some* of the equations (maybe after reduction using
> Groebner bases) without checking that the thus found solutions do
> indeed solve all equations.  I couldn't find a hint for that in the
> documentation. Is there a way to eliminate this behaviour?
> Regards,
> Matthias Weber

It's a bug (sorry to violate your salutation). The cause is that we
spawn nongeneric solutions (that is, they have parameter constraints,
as you noted), then we fail to see that they are nongeneric. This will
be fixed.

A work-around might be to factor the equations, use Logical Expand after
changing Times to Or where appropriate, and solve the resulting system.
The lines below will do this. I took the liberty of destroying
multiplicity in the last equation, which factors as a square.

eq2 = Factor[eqns]
eq3 = Map[If [Head[#]===Power, #[[1]],
	If [Head[#]===Times, Apply[Or,#], #]]&, eq2]; eq4 =
Apply[List,LogicalExpand[Apply[And, eq3]]] sol = Solve[eq4==0, {x0,x1}]

Daniel Lichtblau
Wolfram Research

  • Prev by Date: Save a sequence of images as a QuickTime file?
  • Next by Date: Re: Mathematica and Visual basic
  • Prev by thread: Re: Save a sequence of images as a QuickTime file?
  • Next by thread: Background jobs with Mathematica 3.0 under Linux ?