Show that the equation $y^2 = x^3 + 3$ has infinitely many rational solutions in $x$ and $y$. 
Show that the equation $y^2 = x^3 + 3$ has infinitely many rational solutions
  in $x$ and $y$.

I'm really not sure how to go about this question. I've been using trial and error and have not got very far.
 A: We have that $(x,y)=(1,\pm 2)$ are two rational solution. If we start from a rational solution and intersect the tangent line through that point with the elliptic curve, we find a new point that is still a rational solution by Viete's theorem. The tangent line to the elliptic curve in the point $(x_1,y_1)$ is given by
$$ (x_1,y_1)+\lambda (2y_1,3x_1^2) $$
and the $\lambda$ corresponding to the intersection solves:
$$ (y_1+3\lambda x_1^2)^2 = (x_1+2\lambda y_1)^3+3$$
hence:
$$ \lambda = \frac{9}{8}\frac{x_1^4}{y_1^3}-\frac{3}{2}\frac{x_1}{y_1}=-\frac{3x_1}{8y_1^3}(9+y_1^2) $$
and:
$$ (x_1,y_1)+\lambda (2y_1,3x_1^2) = \left(\frac{x_1(x_1^3-24)}{4(x_1^3+3)},-\frac{y_1^4+54y_1^2-243}{8y_1^3}\right).$$
That brings a rational solution $(x,y)$ into a rational solution. 
For instance, $(1,2)\to\left(-\frac{23}{16},\frac{11}{64}\right)$ and:
$$ \left(-\frac{23}{16},\frac{11}{64}\right)\to\left(\frac{2540833}{7744},\frac{4050085583}{681472}\right).$$
To prove this algorithm generates an infinite number of rational solutions, you just need to prove that the maximum power of two that divides the denominators increases step-by-step. The infinity of rational solutions also follows from a geometric argument: we have at least one rational point $P$ in the region $x<0,y<0$ and at least one rational point in the region $x>0,y>0$. Assuming that the rational points are finite and $Q$ is the rational point in the region $x>0,y>0$ with the greatest $x$-coordinate, then the line through $P$ and $Q$ meet the elliptic curve in a new rational point $R$. But since $f(x)=\sqrt{x^3+3}$ is a convex function on $\mathbb{R}^+$, the coordinates of $R$ are both greater than the corresponding coordinates of $Q$, giving a contradiction.
$\hspace2in$
