Karim Belabas on Fri, 21 Nov 2008 18:28:05 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: Pell's equations and beyond |
* Bill Allombert [2008-11-21 17:00]: > On Wed, Nov 19, 2008 at 03:26:57PM -0800, Max Alekseyev wrote: > > Dear pari-users, > > > > I dream about having the functionality of Dario Alpern's quadratic > > bivariate Diophantine equation solver: > > http://www.alpertron.com.ar/QUAD.HTM > > in PARI/GP. Is anything like that already present there? > > At the moment, I'm not even sure if there is a simple way to solve > > Pell's equations in PARI/GP. > > > > Could you please clarify what is the best way (and if there exists one > > without much programming) to solve the following equations in PARI/GP: > > > > 3) Quadratic bivariate Diophantine equation in the general form: ax^2 > > + bxy + cy^2 + dx + ey + f = 0, where a,b,c,d,e,f are integer > > coefficients ? > > Well, as a starting point this hastily written script should work > as long as b^2-4*a*c is not a square > > An example: > ? qesolve([1,3,7,2,5,-18]) > %28 = [[4, -2], [1, 1], [-6, 1], [0, -2]] > > However if b^2-4*a*c, there is an infinite number of solution, and ... if b^2-4*a*c > 0, ... > it only return the "smallest". Bill treated the hardest case. Up to obvious changes of variables (translations by rational vectors + clearing a common denominator), it seems that the missing ones reduce to equations of the form Dx + Ey + F = 0 \\ a = b = c = 0 Ax^2 + Ey + F = 0, A != 0 \\ else b^2 - 4ac = 0 Bxy + F = 0, B != 0 \\ else b^2 - 4ac a square The first one is essentially 'bezout', the last one 'divisors', and both are trivial to program. The second one involves all square roots mod E of -F/A (for each x congruent to one such root, you get a unique y), and is slightly more painful. About five lines, say, using factor + sqrt(p-adic numbers) + forvec + chinese. So, exercise: complete Bill's program to really treat *all* cases. (Specifying properly how you describe the set all solutions, when there are infinitely many.) This should double its size at most, and I don't think this qualifies as "too much programming". Then make the script available to all of us :-). Cheers, K.B. -- Karim Belabas, IMB (UMR 5251) Tel: (+33) (0)5 40 00 26 17 Universite Bordeaux 1 Fax: (+33) (0)5 40 00 69 50 351, cours de la Liberation http://www.math.u-bordeaux.fr/~belabas/ F-33405 Talence (France) http://pari.math.u-bordeaux.fr/ [PARI/GP] `