In [39]:
from sympy import *
init_printing()
In [40]:
import matplotlib.pyplot as plt
import numpy as np
In [41]:
%matplotlib inline
In [42]:
x = symbols('x')

Méthode de Cardan pour la résolution de l'équation $x^3+px+q=0$

Jérome Cardan (1501-1576) a fourni, dans son ouvrage Ars Magna, une formule pour déterminer une solution réelle $\alpha$ de l'équation $X^3+pX+q=0$ dans le cas où $\frac{p^3}{27}+\frac{q^2}{4} \geqslant 0$ :

\begin{equation*} X=\sqrt[3]{-\frac{q}{2}+\sqrt{\frac{p^3}{27}+\frac{q^2}{4}}}+\sqrt[3]{-\frac{q}{2}-\sqrt{\frac{p^3}{27}+\frac{q^2}{4}}} \end{equation*}

Pour tout nombre réel $a$ on appelle racine cubique de $a$ et on note $\sqrt[3]{a}$ ou $a^{\frac{1}{3}}$ l'unique réel qui élevé au cube donne $a$.

Ainsi $\sqrt[3]{8}=8^{\frac{1}{3}}=2$ et $\sqrt[3]{-8}=(-8)^{\frac{1}{3}}=-2$.

In [43]:
def cardan(p , q):
    return (- q/2 + sqrt(p ** 3 / 27 + q ** 2 / 4)) ** (1/3) + (- q/2 - sqrt(p ** 3 / 27 + q ** 2 / 4)) ** (1/3) 

Résolution de $x^3-36x-91=0$ , $p=-36$ et $q=-91$

In [44]:
#expression de f(x)
expf = x**3 - 36*x - 91
expf
Out[44]:
$$x^{3} - 36 x - 91$$
In [45]:
factor(expf)
Out[45]:
$$\left(x - 7\right) \left(x^{2} + 7 x + 13\right)$$
In [46]:
f = lambdify(x, expf,"numpy")
In [47]:
#tracé de la  courbe  de f 
xmin, xmax, ymin, ymax = -10, 10, -600, 100
plt.axis([xmin, xmax, ymin, ymax])
t = np.linspace(xmin, xmax, 500)
y = f(t)
plt.axhline(color='blue')
plt.axvline(color='blue')
plt.grid(True)
plt.plot(t, y, linestyle='-', linewidth=2, color='red', label=r'$y=f(x)$')
plt.legend(loc='upper left')
Out[47]:
<matplotlib.legend.Legend at 0xaf4a23ec>
In [48]:
cardan(-36, -91)
Out[48]:
$$7.0$$
In [49]:
solve(f(x), x)
Out[49]:
$$\left [ 7, \quad - \frac{7}{2} - \frac{\sqrt{3} i}{2}, \quad - \frac{7}{2} + \frac{\sqrt{3} i}{2}\right ]$$
In [50]:
f(7)
Out[50]:
$$0$$

Résolution de $x^3-15x-4=0$, équation de Bombelli, $p=-15$ et $q=-4$

Avec $p = -15$ et $q = -4$ on a $\frac{p^3}{27}+\frac{q^2}{4} = -121$ qui est négatif donc on ne peut pas calculer de solution de l'équation $x^3-15x-4=0$ avec la formule de Cardan $\sqrt[3]{-\frac{q}{2}+\sqrt{\frac{p^3}{27}+\frac{q^2}{4}}}+\sqrt[3]{-\frac{q}{2}-\sqrt{\frac{p^3}{27}+\frac{q^2}{4}}}$ et pourtant comme on va le vérifier graphiquement ci-dessous l'équation de Bombelli possède bien trois solutions réelles distinctes.

In [51]:
#expression de f(x)
expg = x**3 - 15*x - 4
expg
Out[51]:
$$x^{3} - 15 x - 4$$
In [52]:
factor(expg)
Out[52]:
$$\left(x - 4\right) \left(x^{2} + 4 x + 1\right)$$
In [53]:
g = lambdify(x, expg,"numpy")
In [54]:
#tracé de la  courbe  de g
xmin, xmax, ymin, ymax = -10, 10, -60, 100
plt.axis([xmin, xmax, ymin, ymax])
t = np.linspace(xmin, xmax, 500)
y = g(t)
plt.axhline(color='blue')
plt.axvline(color='blue')
plt.grid(True)
plt.plot(t, y, linestyle='-', linewidth=2, color='red', label=r'$y=g(x)$')
plt.legend(loc='upper left')
Out[54]:
<matplotlib.legend.Legend at 0xaf372a6c>

Quand on applique la formule de Cardan avec Python, un résultat s'affiche avec un étrange nombre i !

In [55]:
cardan(-15, -4)
Out[55]:
$$\left(2.0 - 11.0 i\right)^{0.333333333333333} + \left(2.0 + 11.0 i\right)^{0.333333333333333}$$

Pourtant les solutions sont bien réelles ! Pourrait-on faire correspondre la formule de Cardan à l'un des trois réels ci-dessous ?

In [56]:
solve(g(x),x)
Out[56]:
$$\left [ 4, \quad -2 - \sqrt{3}, \quad -2 + \sqrt{3}\right ]$$

Correspondance avec la formule de Cardan grace à l'introduction d'un nombre imaginaire i=$\sqrt{-1}$

In [57]:
i = sqrt(-1)
In [58]:
(2 + i)**3
Out[58]:
$$\left(2 + i\right)^{3}$$
In [59]:
expand((2+i)**3)
Out[59]:
$$2 + 11 i$$
In [60]:
(2 - i)**3
Out[60]:
$$\left(2 - i\right)^{3}$$
In [61]:
expand((2 - i)**3)
Out[61]:
$$2 - 11 i$$

On en déduit que pour l'équation de Bombelli $x^3-15x-4=0$ avec $p = -15$ et $q = -4$ on a :

  • $\frac{p^3}{27}+\frac{q^2}{4} = -121$ donc avec le nombre imaginaire i tel que $\text{i}^2= -1$ on peut écrire $\frac{p^3}{27}+\frac{q^2}{4} = -121 = (11 \text{i})^2$

  • On en déduit que $\sqrt[3]{-\frac{q}{2}+\sqrt{\frac{p^3}{27}+\frac{q^2}{4}}}+\sqrt[3]{-\frac{q}{2}-\sqrt{\frac{p^3}{27}+\frac{q^2}{4}}}=\sqrt[3]{2 + 11 \text{i} } + \sqrt[3]{2 - 11 \text{i }}$

  • Or on a $(2 + \text{i})^{3} = 2 + 11 \text{i}$ et $(2 - \text{i})^{3} = 2 - 11 \text{i}$

  • On en déduit que $\sqrt[3]{-\frac{q}{2}+\sqrt{\frac{p^3}{27}+\frac{q^2}{4}}}+\sqrt[3]{-\frac{q}{2}-\sqrt{\frac{p^3}{27}+\frac{q^2}{4}}}=2 + \text{i} + 2 - \text{i} = 4$ et grace à l'introduction du nombre imaginaire i, la formule de Cardan donne bien la solution réelle $4$ de l'équation de Bombelli $x^3-15x-4=0$