{"cells":[{"metadata":{},"cell_type":"markdown","source":"![En tête general](https://raw.githubusercontent.com/PythonLycee/PyLyc/master/img/En_tete_general.png)\n\n\n© Copyright Franck CHEVRIER 2019-2022 https://www.python-lycee.com.
\nLes activités partagées sur Capytale sont sous licence Creative Commons.\n\n Pour exécuter une saisie Python, sélectionner la cellule et valider avec SHIFT+Entrée.\n"},{"metadata":{},"cell_type":"markdown","source":"
\n

Résolutions d'équations polynomiales

\n \n"},{"metadata":{},"cell_type":"markdown","source":"
\n AVERTISSEMENT
\n 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.
\n 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. \n
"},{"metadata":{},"cell_type":"markdown","source":"### Sommaire\n\n1. Résolution dans $\\mathbb{R}$ d'une équation du second degré à coefficients réels
\n2. Résolution dans $\\mathbb{C}$ d'une équation du second degré à coefficients réels (Niveau Terminale Math Expertes)
\n3. Résolution dans $\\mathbb{C}$ d'une équation du 3ème degré à coefficients réels (Niveau Terminale Math Expertes)"},{"metadata":{},"cell_type":"markdown","source":"
\n\n## 1. Résolution dans $\\mathbb{R}$ d'une équation du second degré à coefficients réels\n
"},{"metadata":{},"cell_type":"markdown","source":"On rappelle le résultat de cours suivant :
\n\n
\n RÉSOLUTION DANS $\\mathbb{R}$ D'UNE ÉQUATION DU SECOND DEGRÉ À COEFFICIENTS RÉELS\n

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é.

\n On pose $\\Delta = b^2-4ac$ , appelé discriminant de $f$.

\n \n
\n"},{"metadata":{"trusted":true},"cell_type":"markdown","source":"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$.
\n$\\quad$Effectuer ensuite un test avec $a=5$ ; $b=3$ et $c=-4$.
"},{"metadata":{"trusted":false},"cell_type":"code","source":"# Écrire ici la fonction Delta\n\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"# Effectuer ici un test du calcul de Delta pour a=5; b=3 et c=-4\n\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"markdown","source":"2. On fournit ci-dessous une fonction Python Racines.
\n
    \n
  1. Exécuter les cellules de test fournies.
  2. \n
  3. Dans quel(s) cas Python affiche-t-il une erreur ? Expliquer cette erreur.
  4. \n
  5. Dans quel(s) cas la fonction Racines renvoie-t-elle une liste ? Que représente alors la(les) valeur(s) de cette liste?
  6. \n
\n "},{"metadata":{"trusted":false},"cell_type":"code","source":"# Exécuter cette cellule\n\ndef Racines(a,b,c):\n\n d = Delta(a,b,c)\n \n if d==0:\n sol = [-b/(2*a)]\n \n return sol\n ","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"# Exécuter cette cellule de test\n\nRacines(4,8,-60)","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"# Exécuter cette cellule de test\n\nRacines(3,6,3)","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"# Exécuter cette cellule de test\n\nRacines(4,-4,5)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"markdown","source":"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$.\n

\nAides :\n"},{"metadata":{"trusted":false},"cell_type":"code","source":"from math import sqrt\n\n# Écrire ici la fonction Racines modifiée puis exécuter la cellule\n\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"$\\quad$b. Résoudre à la main chacune des équations suivantes dans $\\mathbb{R}$ :\n\n\n"},{"metadata":{},"cell_type":"markdown","source":"$\\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.
\n$\\quad\\;\\;\\;$Au besoin, on corrigera les calculs et/ou on modifiera la fonction Racines."},{"metadata":{"trusted":false},"cell_type":"code","source":"# Effectuer ici les appels à la fonction Racines\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"
\n\n## 2. Résolution dans $\\mathbb{C}$ d'une équation du second degré à coefficients réels
$\\quad\\;$(Niveau Terminale Math Expertes) "},{"metadata":{},"cell_type":"markdown","source":"

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.
\n$\\quad\\;\\;$On remarquera que Python utilise la notation j pour représenter le nombre complexe $i$.
"},{"metadata":{"trusted":false},"cell_type":"code","source":"# Exécuter cette cellule\n\n# Génération du nombre complexe z=3+4i\nz = complex(3,4) \n\nz","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"On rappelle le résultat de cours suivant :
\n\n
\n RÉSOLUTION DANS $\\mathbb{C}$ D'UNE ÉQUATION DU SECOND DEGRÉ À COEFFICIENTS RÉELS\n

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é.

\n On pose $\\Delta = b^2-4ac$ , appelé discriminant de $f$.

\n \n
\n"},{"metadata":{},"cell_type":"markdown","source":"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.\n

\nAides :\n"},{"metadata":{"trusted":false},"cell_type":"code","source":"from math import sqrt\n\n# Écrire ici la fonction Racines modifiée puis exécuter la cellule\n\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"$\\quad$2.2.a. Résoudre à la main chacune des équations suivantes dans $\\mathbb{C}$ :\n\n\n"},{"metadata":{},"cell_type":"markdown","source":"$\\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.
\n$\\quad\\;\\;\\;$Au besoin, on corrigera les calculs et/ou on modifiera la fonction Racines."},{"metadata":{"trusted":false},"cell_type":"code","source":"# Effectuer ici les appels à la fonction Racines\n\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"
\n\n## 3. Résolution dans $\\mathbb{C}$ d'une équation du 3ème degré à coefficients réels
$\\quad\\;$(Niveau Terminale Math Expertes) \n

"},{"metadata":{},"cell_type":"markdown","source":"3.1. Dans cette question, on souhaite résoudre dans $\\mathbb{C}$ l'équation du 3ème degré $g(z)=0$ avec :

$g(z)=z^3-13z^2+57z-85$
"},{"metadata":{},"cell_type":"markdown","source":"$\\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$. "},{"metadata":{"trusted":false},"cell_type":"code","source":"# Écrire ici la fonction Python g\n\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"$\\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.
"},{"metadata":{"trusted":false},"cell_type":"code","source":"# Exécuter cette cellule\n\ndef recherche_sol_elem(fonction):\n for k in range(-10,11):\n if fonction(k)==0 :\n return k\n return None\n \nrecherche_sol_elem(g)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"$\\quad\\;\\;$c. On admet le résultat suivant :\n \n
\n Soit $g(z)$ une fonction polynomiale non nulle à coefficients réels de degré $n$.

\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 :
\n $g(z)=(z-x_0)f(z)$ où $f$ est une fonction polynôme à coefficients réels de degré $n-1$.\n
\n\n$\\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.
\n$\\quad\\quad\\;\\;$Déterminer la valeur des coefficients $a$ ; $b$ et $c$.

\n$\\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$.\n"},{"metadata":{},"cell_type":"markdown","source":"$\\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$. "},{"metadata":{"trusted":false},"cell_type":"code","source":"# Effectuer ici l'appel à la fonction Racines\n\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"$\\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."},{"metadata":{"trusted":false},"cell_type":"code","source":"# Effectuer ici les appels à la fonction g\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"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$. "},{"metadata":{"trusted":false},"cell_type":"code","source":"# On pourra utiliser ces zones de saisies Python pour :\n# - la recherche d'une première solution de l'équation\n# - un appel à la fonction Racines\n# - des vérifications\n\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"![Al-Khwârizmî](https://raw.githubusercontent.com/PythonLycee/PyLyc/master/img/Al-Khawarizmi.jpg) \n\nAl-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 "},{"metadata":{},"cell_type":"markdown","source":"© Copyright Franck CHEVRIER 2019-2022 https://www.python-lycee.com.
\nLes activités partagées sur Capytale sont sous licence Creative Commons.\n

\nDernière modification de l'activité : Juillet 2022"}],"metadata":{"celltoolbar":"Raw Cell Format","kernelspec":{"display_name":"Python 3","language":"python","name":"python3"}},"nbformat":4,"nbformat_minor":2}