The Math Forum

Ask Dr. Math - Questions and Answers from our Archives
Associated Topics || Dr. Math Home || Search Dr. Math

Cubic Diophantine Equation in Three Variables

Date: 09/10/2004 at 05:42:16
From: Juan Pablo
Subject: Number theory

I want to find integer solutions of the equation x^3 + y^3 = 31z^3.  I
know the fundamental solution is (137, -65, 42), but want to have all
the values positive.  I know also that there is an arithmetic 
procedure (doubling in the group) to obtain further solutions from the
fundamental one, but I do not know the details of this procedure.

Could you explain these details, and how to get the first positive
solution, in this case and in other cases with fundamental 
non-positive solutions?  Thanks in advance.

Date: 10/19/2004 at 15:10:00
From: Doctor Vogler
Subject: Re: Number theory

Hi Juan,

Thanks for writing to Dr. Math.

First of all, there is a relationship between solutions in integers 
and solutions in rational numbers.  You see, if (x, y, z) is any one
solution, then (kx, ky, kz) is also a solution for any number k.  So
if you have a rational solution, then you can just let k be the least
common denominator and get an integer solution.  In the group law, all
of these solutions--(kx, ky, kz) for all rational k--are considered to 
be the same.  So if z is nonzero then you can think of "the" solution 
as being (x/z, y/z, 1).  (This is called converting to affine 

The group law you referred to comes from the theory of Elliptic 
Curves, and it is probably most easily understood in affine
coordinates.  So let's assume that z is nonzero.  (All the z=0
solutions are (x, -x, 0) for any x, so let's look at other solutions.)
Then our equation

  (x/z)^3 + (y/z)^3 = 31

can be written as

  X^3 + Y^3 = 31.

Let's suppose that we have a line

  Y = mX + b

and we want to know where this line intersects our curve.  So we

  X^3 + (mX + b)^3 = 31

and expand this out into a cubic equation in X.  A cubic equation 
might have no rational solutions, or it might have one, or it might
have three, but it certainly can't have only two.  So if we start with
a line that we already know passes through two points on our curve,
then we will most assuredly get a third point on the curve.

This gives us a way to take two points and "multiply" them together to
get a third point.  That might get you excited, but it does not,
unfortunately, give you a group, because it does not satisfy the law
of associativity.

Fortunately, it will satisfy the associative law if we make one small
change.  (Although proving that it satisfies the law is still not
easy.)  First we fix any single point on the curve, such as (1, -1, 0)
and we call this our "zero" point, usually written as the letter O. 
Now to add a point A to B, we first do the above construction--we draw 
the line through A and B, and we get the third point C on our curve 
that also lies on the line.  Then we do the same construction with C 
and O--we draw the line through C and O and get the third point D on 
the curve that is also on the line.  Then D is the sum A+B.

In fact, C is the negative of D, so that the three points of our curve
on any single line sum to the identity of the group, which is O.  
Notice that O is called the "point at infinity" because when we try to
convert to affine coordinates, we divide by zero.

Lastly, for the "doubling" you might wonder how we add a point to
itself.  If we only have one point, how do we make a line that goes
through just that one point?  Well, the answer is that it has to go
through that point doubly.  That is, when we substitute into our
equation and get a cubic in X, the point we know about has to be a
double root.  To get that, we need to use the TANGENT line to our
curve at that point.

Now I will do an example of doubling your point.  Your point is

  (x, y, z) = (137, -65, 42) = (137/42, -65/42, 1).

We want the tangent line to

  x^3 + y^3 = 31z^3

at this point, so we take the derivatives and find that the tangent
line at the point (a, b, c) is

  a^2*x + b^2*y = 31c^2*z


  a^2*X + b^2*Y = 31c^2

in affine coordinates.  So the tangent at the point

  (-137, -65, 42) = (137/42, -65/42, 1)


  (137)^2*X + (-65)^2*Y = 31(42)^2

which is the same as

  (137/42)^2*X + (-65/42)^2*Y = 31.

Now we solve for Y and substitute into the equation

  X^3 + Y^3 = 31

and get

  Y = (31*42^2 - 137^2 * X)/65^2

  X^3 + (31*42^2 - 137^2 * X)^3/65^6 = 31

which we can simplify as

  (X - 137/42)^2 * (X - 277028111/119531076) = 0

and we get Y from the line above,

  Y = (31*42^2 - 137^2 * X)/65^2,

and we now have our new point,

  X = 277028111/119531076
  Y = 316425265/119531076


  x = 277028111
  y = 316425265
  z = 119531076.

Since we haven't yet done the line with our "point at infinity," this
point is

  (277028111, 316425265, 119531076) = -2(137, -65, 42).

Next we do the line with our point at infinity, (1, -1, 0).  Any line
through this point at infinity (1, -1, 0) is a line with slope -1.  So
our line would be

  Y = -(X - 277028111/119531076) + 316425265/119531076.

The reason for the slope condition is that if we write this line as

  y = -(x - z*277028111/119531076) + z*316425265/119531076,

then you'll find that it goes through the point (1, -1, 0).

Now we substitute this into our equation

  X^3 + (-(X - 277028111/119531076) + 316425265/119531076)^3 = 31

and we simplify this into

  (X - 277028111/119531076) * (X - 316425265/119531076) = 0

and we get our double point

  X = 316425265/119531076
  Y = 277028111/119531076


  x = 316425265
  y = 277028111
  z = 119531076.


  (316425265, 277028111, 119531076) = 2(137, -65, 42).

Isn't it curious that in this case we had

  -(a, b, c) = (b, a, c) ?

Can you prove that this is always true?  To do so, all you need to do
is show that

  (a, b, c), (b, a, c), and (1, -1, 0)

are all on the same line, and they are all on our curve.

Then, if you want, you can add this last point to our original point
to get

  3(137, -65, 42)

and then either add the result to the original point again, or double
our double point, and both should get the same result for

  4(137, -65, 42).

Of course, you'll find that the numbers get really big really fast. 
That has to do with the "height" of the point.  If they really do keep
getting bigger (which they do), then you'll never repeat points, which
means that there are infinitely many different solutions.  You might
also wonder if you can get all rational points on this curve this way.
In elliptic-curve-speak, that question is, "Does my elliptic curve 
have rank one?"

You can answer these questions with some deeper math in elliptic 
curves, but I can't teach it to you in email; you'd need a book and/or
a teacher (preferably both).  I learned from Knuth's book Elliptic
Curves, but there are many other books on the subject.

If you have any questions about this or need more help, please write
back and show me what you have been able to do, and I will try to
offer further suggestions.

- Doctor Vogler, The Math Forum 

Date: 10/20/2004 at 08:44:15
From: Juan Pablo
Subject: Thank you (Number theory)

Dear Dr. Vogler. 

Thank you very much for your detailed answer.  It solves a problem 
that I failed to solve by asking other specialists.  Actually my 
problem was to convert the original equation into the Weierstrass 
standard form and, at the same time, to convert the solution in 
integers of the first into the corresponding solution for the second.  
Now, thanks to your clear advice, the problem is solved not only in 
the given example but in general.  I thank you again very much. 

- Juan Pablo
Associated Topics:
College Number Theory

Search the Dr. Math Library:

Find items containing (put spaces between keywords):
Click only once for faster results:

[ Choose "whole words" when searching for a word like age.]

all keywords, in any order at least one, that exact phrase
parts of words whole words

Submit your own question to Dr. Math

[Privacy Policy] [Terms of Use]

Math Forum Home || Math Library || Quick Reference || Math Forum Search

Ask Dr. MathTM
© 1994- The Math Forum at NCTM. All rights reserved.