Given a cubic polynomial in depresed monic form,
one can use Ferro and Tartaglia's equation to solve for one of the roots:

Once
is found, one can then factor out
from the polynomial, and solve the remaining two roots,
with the quadratic forumula. One problem arises in which
is in the form:

Bombeli (in 1572) figured out a slick solution to this problem, which was also one of the first "useful" applications of complex numbers to real-valued problems. He found that solving for
and
in,

allows us to find the solution of
as

So that means, if we know
and
then we need to find
and
such that:


This isn't trivial to solve. If you're lucky enough that
and
are integers, then the following program will help.
If you find
in the matrix (see below), it tells you the values of
and
Here is a 5x5 output of bombeli.m:
For (u+vi)^3:
v -->
u 1 2 3 4 5
--- ------------ ------------ ------------ ------------ ------------
1 -2+ 2i -11+ -2i -26+ -18i -47+ -52i -74+ -110i
2 2+ 11i -16+ 16i -46+ 9i -88+ -16i -142+ -65i
3 18+ 26i -9+ 46i -54+ 54i -117+ 44i -198+ 10i
4 52+ 47i 16+ 88i -44+ 117i -128+ 128i -236+ 115i
5 110+ 74i 65+ 142i -10+ 198i -115+ 236i -250+ 250i
Here is the Octave program (bombeli.m):
function bombeli
U = 5;
V = 5;
printf("For (u+vi)^3:\n");
printf(" v -->\n");
printf(" u ");
for u = 1:U
printf("%14d", u);
end
printf("\n");
printf("---");
for u = 1:U
printf(" ------------");
end
printf("\n");
for u = 1:U
printf("%2d ", u);
for v = 1:V
Re = u*(u^2 -3*v^2);
Im = v*(3*u^2 - v^2);
printf("%5d+%5di ", Re, Im);
end
printf("\n");
end
end
Find the roots of
:
First, evaluating the Ferro and Tartaglia equation we get:

Therefore we have
.
If we look up
in the table from the program we see that
, and therefore we have
.
Factoring out
from the original equation, we get the quadratic
, which has roots
.
So our final solution is:
