TP Scilab n°14 – Résolution d’équation
Dans ce TP, vous allez construire des programmes donnant la valeur approchée de la solution d’une équation. Vous
allez voir deux méthodes :
- La méthode par dichotomie
- La méthode des tangentes.
Vous comparerez ensuite la rapidité de convergence de ces deux méthodes.
Ces deux méthodes permettent de résoudre des équations de la forme :
𝑓(𝑥) = 0
On remarquera que toute équation peut se ramener à la forme ci-dessus en passant tout le second membre à
gauche.
Dans les deux méthodes, on suppose qu’on dispose d’un intervalle [𝑎, 𝑏] sur lequel 𝑓 est défini et dont on sait qu’il
contient une et une seule solution de l’équation 𝑓(𝑥) = 0. On notera cette solution 𝛼.
1 Méthode par dichotomie
Comme son nom l’indique (dicho-tomie = couper en deux), la méthode par dichotomie consiste à couper en deux
l’intervalle [𝑎, 𝑏] puis par chercher dans laquelle des deux parties se trouve 𝛼 et à recommencer ainsi de suite.
Plus précisément :
1- On nomme 𝑐 le milieu de [𝑎, 𝑏].
2- On calcule 𝑓(𝑐).
3- Si 𝑓(𝑐) est du même signe que 𝑓(𝑎) :
Dans ce cas, 𝑓 ne change pas de signe entre 𝑎 et 𝑐 donc 𝛼 se situe entre 𝑐 et 𝑏.
On doit donc maintenant chercher 𝛼 dans [𝑐, 𝑏]
On pose donc 𝑎 = 𝑐 et on a notre nouvel intervalle [𝑎, 𝑏] dans lequel rechercher 𝛼.
Sinon :
𝑓 change de signe entre 𝑎 et 𝑐, donc 𝛼 se situe entre 𝑎 et 𝑐.
On doit donc maintenant chercher 𝛼 dans [𝑎, 𝑐]
On pose donc 𝑏 = 𝑐 et on a notre nouvel intervalle [𝑎, 𝑏] dans lequel rechercher 𝛼.
On recommence ainsi de suite tant que la largeur de l’intervalle [𝑎, 𝑏] est supérieure à une précision 𝑝 fixée
au départ.
Exercice :
1. Créer dans Scilab une fonction : alpha = dicho(f,a,b,p)qui exécute la méthode par dichotomie tant
que la largeur de l’intervalle [𝑎, 𝑏] est supérieure à 𝑝 puis renvoie le milieu de cet intervalle.
2. Créer dans Scilab la fonction 𝑓: 𝑥 ↦ 𝑥 2 − 2.
a. Quelle et la solution positive de l’équation 𝑓(𝑥) = 0 ?
b. A l’aide de Scilab, écrire ci-dessous la valeur approchée de cette solution avec la précision maximale
permise par Scilab (taper format(25) dans la console pour afficher les résultats avec le maximum
de décimales possibles) :
𝛼 = ____________________________________________________________________________
3. Exécuter votre programme avec la fonction 𝑓 et l’intervalle [0,2] et la précision 10−9 . Ecrire ci-dessous le
résultat obtenu :
𝛼 ≈ _____________________________________________________________________________
4. Modifier votre fonction pour qu’elle renvoie deux valeurs : la valeur approchée de 𝛼 et le nombre
d’itérations nécessaires. La fonction s’écrira [alpha,n] = dicho(f,a,b,p)
2 Méthode des tangentes (ou méthode de Newton) :
Cette méthode nécessite, pour être sûr d’aboutir, que 𝑓 soit convexe, ou concave, sur [𝑎, 𝑏].
Nous allons l’illustrer avec la fonction 𝑓: 𝑥 ↦ 0,004(𝑥 + 2)3 − 0,004 dont la courbe est donnée ci-dessous et qui
permet de bien visualiser la méthode.
Avec cette fonction, l’équation 𝑓(𝑥) = 0 admet 𝛼 = −1 comme unique solution sur ℝ. Notre programme doit donc
nous donner une solution qui soit proche de −1.
Toutes les images ci-dessous sont issues de l’animation Geogebra
disponible ici que je vous conseille de consulter.
Pour fonctionner la méthode des tangentes a besoin d’avoir une
valeur 𝑢0 proche de la solution 𝛼 recherchée.
On considère alors la tangente à 𝐶𝑓 en 𝑢0 et on cherche son point
d’intersection 𝑢1 avec l’axe des abscisses :
Puis on recommence à partir de 𝑢1 :
On crée ainsi une suite de réelle (𝑢𝑛 ) dont on peut montrer
qu’elle converge vers 𝛼 ∶
On conviendra ici d’arrêter de calculer les 𝑢𝑛 dès que la distance |𝑢𝑛+1 − 𝑢𝑛 | est inférieure à la précision souhaitée.
Exercice 2 : un peu de théorie.
On va ici déterminer la relation de récurrence de la suite (𝑢𝑛 ) définie ci-dessus.
1. Rappeler l’équation de la tangente à 𝐶𝑓 en 𝑢𝑛 . E
2. En déduire l’expression de 𝑢𝑛+1 en fonction de 𝑢𝑛 .
Exercice 3 :
Vous l’aurez compris, pour fonctionner la méthode des tangentes a besoin d’avoir l’expression de 𝑓′. Comme Scilab
ne sait pas calculer cette expression, il faudra la passer en paramètre d’entrée de notre fonction.
1. Créer une fonction [alpha n]=newton(f,df,u0,p) qui applique la méthode de Newton avec la fonction
f, de dérivée df, comme première valeur u0 et avec la précision p.
f et df devront avoir été créées préalablement pour que la fonction newton fonctionne.
2. Exécuter la fonction newton pour retrouver la valeur approchée de la solution positive de l’équation
𝑥 2 − 2 = 0 avec une précision de 10−9 .
3. Comparer le nombre d’itérations nécessaires avec celui de la dichotomie.