Cubic equations prior to Cardano
Problems which we would answer by setting up one or more linear or quadratic equations to solve abound in mathematical texts starting with the Babylonian clay tablets from 1600 bc. Problems leading to cubic equations are more rare, perhaps because they are harder to solve. Here is a series of problems leading to cubics which occurred prior to Cardano in 1400.
Problem:
(Oracle at Delphi) Given a cube of side a, construct a cube whose volume is doubled.
The solution of this problem involves solving the equation
. Divide both sides by x, and get the equation
. Geometrically, the solution is the first coordinate of the intersection of the parabola
with the hyperbola
. This was recognized early on by the Greeks as far back as Menaechmus. So they could really have used a graphing calculator.
>
plot({x^2,2/x},x=0..2,y=0..5,color=black);
>
Problem:
(Archimedes 250bc) Cut a sphere into two pieces so that the ratio of the volumes of the pieces is a given proportion.
We could easily solve if we could simply cut a piece off the sphere of radius 1 whose volume was a specified fraction of
. Archimedes solved this problem geometrically, by intersecting a parabola with a hyperbola. That's because algebraically, it reduces to solving a cubic equation.
>
restart;
Set up the equation. Using calculus, we would calculate the area of the section of the sphere of radius 1 from -1 to x as
. Then the equation we want to solve is
>
eqn:=int(Pi*(1-t^2),t=-1..x)/int(Pi*(1-t^2),t=-1..1) = a/b;
>
eqn:=simplify(eqn - (1/2 = 1/2));
Rewriting to get a hyperbola = parabola:
>
eqn := eqn/(-1/4*x);
Now make a function to study the intersection
>
f := (a,b) -> plot({x^2-3,-2*(2*a-b)/(x*b)},x=-1..1,y=-4..0,color=black,discont=true);
>
f(2,3);
>
plots[display]([seq(f(2,3+i/20),i=-10..10)],insequence=true);
>
f := proc(a,b)
local solx,soly,pl1,pl2,txt;
solx := fsolve(x*b*(x^2-3)=-2*(2*a-b) ,x,-1..1):
soly := solx^2-3;
pl1 := plot([[0,soly],[solx, soly]],color=magenta,thickness=2);
pl2:=plot({x^2-3,-2*(2*a-b)/(x*b)},x=-1..1,y=-4..0,color=black,discont=true);
txt := plots[textplot]([solx/2,soly+.2,
convert(evalf(solx,5),string)]);
plots[display]([pl1,pl2,txt]); end:
>
f(9,11);
>
plots[display]([seq(f(2,3+i/20),i=-10..10)],insequence=true);
Problem:
(Diophantus 200AD) To find two numbers, one a square and one a cube, so that the sum of their squares is a square.
Solution:
find x,y, and z so that
.
>
eqn:=(x^2)^2+(y^2)^3 = z^2;
>
Diophantus assumes
and
>
eqn := subs({z = k*y^2,x=2*y},eqn);
>
eqn:=simplify(eqn/y^4);
By inspection take y = 3, k = 5, so x = 6 and z = 45. Checking
>
(6^2)^2 + (3^3)^2 = 45^2;
Problem.
Find another integer solution to this problem.
>
>
Problem:
(Diophantus) To add the same number to a cube and its side and make the first sum the cube of the second sum.
Solution:
Find x and y so that
. First he lets x = 2*y
>
eqn := x^3+y = (x+y)^3;
>
eqn:=subs(x=2*y,eqn);
>
eqn := simplify(eqn/y);
>
eqn := y^2=solve(eqn,y^2);
But 19 is not a square.
>
eqn := x^3+y = (x+y)^3;
>
eqn2:=subs(x=k*y,eqn);
>
collect((collect(rhs(eqn2),y)-lhs(eqn2)+y),y)/y=1;
The problem reduces to finding two consecutive integers such that the difference of their cubes is a square.
7 and 8 satisfy this
>
sqrt(8^3 - 7^3);
>
>
subs({x=7/13,y=1/13},eqn);
Omar Khayyam studied the cubic equations in the manner of Archimedes, that is, he solved them by means of conic sections. However, he wanted algorithms for solving them algebraically.
Problem
(Khayyam 1050AD) Negative coefficients were not allowed, so he counted altogether 14 different types of cubic equations: (what were they?)
Partial Solution. (all parameters are positive)
I
II
Problem
(Fibonnaci 1200AD) supposedly (according to Katz, History of Math) showed that the roots of
are not of the form
for any rational a ,b, and c. Do the same.
Solution:
I have no idea where Fibonacci got his cubic from. I expect it arose in some natural way.
First see that the equation has no rational solution. (The rational root theorem says the only possiblilies are the numbers of the form 1/n, where n is a factor of 20. We can check that none of these are roots.)
>
restart;
>
eqn := x^3+2*x^2+10*x- 20;
>
possibleroots := [1/20,-1/20,1/10,-1/10,1/5,-1/5,1/2,-1/2];
>
seq(subs(x=rt,eqn),rt=possibleroots);
Suppose
is a root. Let sqrc denote
. Since
is not rational, sqrc is not rational. But plug x=a+b*sqrc into eqn and solve for sqrc:
>
eqn2:=subs(x=a+b*sqrc,eqn);
>
eqn3:=subs(sqrc^2=c,expand(eqn2));
>
>
eqn4:=subs(sqrc^3=c*sqrc,expand(eqn3));
>
solve(eqn4,{sqrc});
>
we get that
is a rational number!. This is a contradiction, so there is no root of the form
.
Fibonacci was well on his way to showing that none of the roots of his cubic are
constructible
by straight edge and compass, so he was about 600 years ahead of his time. Let us agree that the definition of constructible given below characterizes the notion of constructible by straight edge and compass.
Definition.
A number is
constructible
if it can be arrived at from the rationals using a finite number of applications of the four arithmetic operations together with the operation of taking the positive square root of a positive number.
Theorem
No root of
is constructible.
Proof:
Suppose a root x is constructible. Let n the number of times the operation of square root
must
be used to obtain x. So from Fibonacci's Problem, we know that n >1. Let
i = 1..n, be the square roots that are formed successively in the construction of x. Then
is rational but
is not rational, and for each
,
is of the form
where
and
are formed from the rationals and
, ..,
using +, -, *, and / a finite number of times, but
is not of that form, and x =
, where
and
are formed from the rationals and
, ..,
using +, -, *, and / a finite number of times, but
is not of that form. (Here you need to use the fact that
=
, by 'rationalizing' the denominator.) But if we substitute
into Fibonacci's cubic, and manipulate as he did, we see that
can be written as a rational combination of
and
.
>
eqn2:=subs(x=a[n]+b[n]*sqrc[n],eqn);
>
eqn3:=subs(sqrc[n]^2=c[n],expand(eqn2));
>
>
eqn4:=subs(sqrc[n]^3=c[n]*sqrc[n],expand(eqn3));
>
>
solve(eqn4,{sqrc[n]});
So we conclude that there is no constructible solution to Fibonacci's cubic.
Problem:
Show
is irrational (hint: suppose
is rational. Derive a contradiction. Or use the rational root theorem.)
Problem.
Show that
is not constructible.
Solution hint:
Note that
is a root of x^3 - 2. Proceed in the same manner as we did for Fibonacci's cubic.
Looking at the roots of a cubic
We can draw a picture locating the roots of a cubic in the complex plane. Let's illustrate with Fibonacci's cubic.
First define the equation.
>
eqn := x^3+2*x^2+10*x-20;
Solve it with solve. You will always get three roots for a cubic, even repeated roots.
>
solve(x^3,x);
>
sol :=solve(eqn,x);
>
evalf([sol]);
Each of the roots is a complex number z =
, with a real part a = Re(z) and imaginary part b = Im(z). So to reference the imaginary part of the second root,
>
Im(sol[2])=evalf(Im(sol[2]));
To construct the list of points in the plane representing the roots, form the sequence
>
rts := seq([Re(sol[i]),Im(sol[i])],i=1..3);
Then to draw them, use plot.
>
plot({rts},style=point,symbol=circle);
Now, suppose I wanted to study the motion of the roots of Fibonacci's cubic as the coefficient of
decreases from 2 to 0. We could copy down the cells from above and modify them to produce a plot of the roots of x^3 + a*x^2 + 10*x -20 for
any
a.
>
drawem := proc(a)
local eqn,x, i,sol,rts;
>
eqn := x^3+a*x^2+10*x-20 ;
>
sol :=solve(eqn,x);
>
rts := seq([Re(sol[i]),Im(sol[i])],i=1..3);
>
plot({rts},style=point,symbol=circle);
end:
Now testing this
>
drawem(2);
Now construct a sequence of 21 plots of the roots as a moves from 2 to 0 like this.
>
plots[display]([seq(drawem(2-i/10),i=0..20)],insequence=true);
>
Note that as a moves from 2 back to 0, the real root moves forward from about 1.4 to 1.6, so it moves across 1.5 = 3/2.
Plug x = 3/2 into the equation
and solve for a.
>
eqn:=x^3+a*x^2+10*x-20;
>
solve(subs(x=3/2,eqn),a);
This says that the equation
not only has a constructible root, it has a rational root. In other words, by decreasing the coefficient of
by 1 and 5/18 we get an equation with a rational root.
Problem:
Show that we can decrease the coefficient of
by a rational amount
as small as we like
and get an equation with a rational root.