© Copyright Franck CHEVRIER 2019-2022 https://www.python-lycee.com.
Les activités partagées sur Capytale sont sous licence Creative Commons.
Pour exécuter une saisie Python, sélectionner la cellule et valider avec SHIFT+Entrée.
AVERTISSEMENT
Les nombres décimaux sont représentés en langage Python par des valeurs de type float. Or les calculs sur ces valeurs ne sont pas exacts, ce qui ne permet en particulier pas d'effectuer des tests d'égalité sur ces valeurs.
Pour cette raison, les calculs proposés dans cette activité ne sont effectués que sur des nombres entiers, codés en langage Python par des valeurs de type int.
1. Résolution dans $\mathbb{R}$ d'une équation du second degré à coefficients réels
2. Résolution dans $\mathbb{C}$ d'une équation du second degré à coefficients réels (Niveau Terminale Math Expertes)
3. Résolution dans $\mathbb{C}$ d'une équation du 3ème degré à coefficients réels (Niveau Terminale Math Expertes)
On rappelle le résultat de cours suivant :
RÉSOLUTION DANS $\mathbb{R}$ D'UNE ÉQUATION DU SECOND DEGRÉ À COEFFICIENTS RÉELS
Soit $f(x)=ax^2+bc+c$ (avec $a\in\mathbb{R}^*$ ; $b\in\mathbb{R}$ ; $c\in\mathbb{R}$ ) une fonction polynôme du second degré.
On pose $\Delta = b^2-4ac$ , appelé discriminant de $f$.
- Si $\Delta > 0$ alors l'équation $f(x)=0$ a exactement deux solutions réelles :
$\displaystyle x_1=\frac{-b-\sqrt{\Delta}}{2a} \;$ et $\; \displaystyle x_2=\frac{-b+\sqrt{\Delta}}{2a}$ - Si $\Delta = 0$ alors l'équation $f(x)=0$ a une unique solution réelle :
$\displaystyle x_0=-\frac{b}{2a} \;$ - Si $\Delta < 0$ alors l'équation $f(x)=0$ n'a aucune solution réelle.
1. Définir une fonction Python Delta qui reçoit en arguments les valeurs $a$ ; $b$ et $c$ et qui renvoie la valeur du discriminant $\Delta$ de $f$.
$\quad$Effectuer ensuite un test avec $a=5$ ; $b=3$ et $c=-4$.
# Écrire ici la fonction Delta
# Effectuer ici un test du calcul de Delta pour a=5; b=3 et c=-4
2. On fournit ci-dessous une fonction Python Racines.
# Exécuter cette cellule
def Racines(a,b,c):
d = Delta(a,b,c)
if d==0:
sol = [-b/(2*a)]
return sol
# Exécuter cette cellule de test
Racines(4,8,-60)
# Exécuter cette cellule de test
Racines(3,6,3)
# Exécuter cette cellule de test
Racines(4,-4,5)
3.a. Modifier la fonction Python Racines pour qu'elle fournisse dans tous les cas la liste des solutions réelles de l'équation du second degré $ax²+bx+c=0$.
Aides :
from math import sqrt
# Écrire ici la fonction Racines modifiée puis exécuter la cellule
$\quad$b. Résoudre à la main chacune des équations suivantes dans $\mathbb{R}$ :
$\quad$c. Exécuter trois appels à la fonction Racines pour vérifier sa cohérence avec les résultats de la question précédente.
$\quad\;\;\;$Au besoin, on corrigera les calculs et/ou on modifiera la fonction Racines.
# Effectuer ici les appels à la fonction Racines
2.0. Question préliminaire : Syntaxes en langage Python.
$\quad\;\;$Exécuter la cellule ci-dessous.
$\quad\;\;$La syntaxe fournie permet de générer un nombre complexe en Python, à partir de sa partie réelle et de sa partie imaginaire.
$\quad\;\;$On remarquera que Python utilise la notation j pour représenter le nombre complexe $i$.
# Exécuter cette cellule
# Génération du nombre complexe z=3+4i
z = complex(3,4)
z
On rappelle le résultat de cours suivant :
RÉSOLUTION DANS $\mathbb{C}$ D'UNE ÉQUATION DU SECOND DEGRÉ À COEFFICIENTS RÉELS
Soit $f(z)=az^2+bz+c$ (avec $a\in\mathbb{R}^*$ ; $b\in\mathbb{R}$ ; $c\in\mathbb{R}$ ) une fonction polynôme du second degré.
On pose $\Delta = b^2-4ac$ , appelé discriminant de $f$.
- Si $\Delta > 0$ alors l'équation $f(z)=0$ a exactement deux solutions, qui sont réelles :
$\displaystyle x_1=\frac{-b-\sqrt{\Delta}}{2a} \;$ et $\; \displaystyle x_2=\frac{-b+\sqrt{\Delta}}{2a}$ - Si $\Delta = 0$ alors l'équation $f(z)=0$ a une unique solution, qui est réelle :
$\displaystyle x_0=-\frac{b}{2a} \;$ - Si $\Delta < 0$ alors l'équation $f(z)=0$ a exactement deux racines complexes conjuguées :
$\displaystyle z_1=\frac{-b-i\sqrt{\vert \Delta \vert}}{2a} \;$ et $\; \displaystyle z_2=\overline{z_1}=\frac{-b+i\sqrt{\vert \Delta \vert}}{2a}$
2.1. Modifier la fonction Python Racines (obtenue à la question 3.a) pour qu'elle fournisse dans tous les cas la liste des solutions complexes d'une équation du second degré à coefficients réels.
Aides :
from math import sqrt
# Écrire ici la fonction Racines modifiée puis exécuter la cellule
$\quad$2.2.a. Résoudre à la main chacune des équations suivantes dans $\mathbb{C}$ :
$\quad$c. Exécuter trois appels à la fonction Racines pour vérifier sa cohérence avec les résultats de la question précédente.
$\quad\;\;\;$Au besoin, on corrigera les calculs et/ou on modifiera la fonction Racines.
# Effectuer ici les appels à la fonction Racines
3.1. Dans cette question, on souhaite résoudre dans $\mathbb{C}$ l'équation du 3ème degré $g(z)=0$ avec :
$\quad\;\;$a. Définir une fonction Python g qui reçoit une valeur $x$ en argument et qui renvoie son image $g(x)$ par la fonction $g$.
# Écrire ici la fonction Python g
$\quad\;\;$b. Exécuter la cellule Python ci-dessous.
$\quad\quad\;\;$Que représente la valeur obtenue ? dans quel ensemble de nombres est-elle cherchée ?
$\quad\quad\;\;$Cette valeur sera notée $x_0$ dans les questions suivantes.
# Exécuter cette cellule
def recherche_sol_elem(fonction):
for k in range(-10,11):
if fonction(k)==0 :
return k
return None
recherche_sol_elem(g)
$\quad\;\;$c. On admet le résultat suivant :
Soit $g(z)$ une fonction polynomiale non nulle à coefficients réels de degré $n$.
Si $x_0$ est une racine réelle de $g$ (c'est à dire telle que $g(x_0)=0$), alors $g$ peut s'écrire :
$g(z)=(z-x_0)f(z)$ où $f$ est une fonction polynôme à coefficients réels de degré $n-1$.
$\quad\quad\;\;$On pose $g(z)=(z-x_0)(az^2+bz+c)$, où $x_0$ est la valeur obtenue dans la question 3.1.b.
$\quad\quad\;\;$Déterminer la valeur des coefficients $a$ ; $b$ et $c$.
$\quad\quad\;\;$Aide : On pourra développer l'expression $(z-x_0)(az^2+bz+c)$ et identifier les coefficients avec ceux de $z^3-13z^2+57z-85$.
$\quad\;\;$d. Effectuer un appel à la fonction Racines obtenue dans la question 2.1, et en déduire l'ensemble des solutions complexes de l'équation $g(z)=0$.
# Effectuer ici l'appel à la fonction Racines
$\quad\;\;$e. En effectuant des appels à la fonction Python g, vérifier que les valeurs trouvées dans la question 3.1.d sont correctes.
# Effectuer ici les appels à la fonction g
3.2. Reprendre la méthode détaillée dans la question 3.1 pour résoudre dans $\mathbb{C}$ l'équation $z^3+3z^2-23z+35=0$.
# On pourra utiliser ces zones de saisies Python pour :
# - la recherche d'une première solution de l'équation
# - un appel à la fonction Racines
# - des vérifications
Al-Khwârizmî (env. 780- env. 850) a étudié la résolution d'équations du second degré dans Abrégé du calcul par la restauration et la comparaison
© Copyright Franck CHEVRIER 2019-2022 https://www.python-lycee.com.
Les activités partagées sur Capytale sont sous licence Creative Commons.
Dernière modification de l'activité : Juillet 2022