Résolution approchée d'équations
On cherche dans toute la suite à résoudre, de manière approchée, l'équation f (x) = 0.
Méthode par balayage
La méthode par balayage est une méthode naïve et peu efficace, mais très simple et qui fonctionne très bien.On cherche un encadrement de la solution de l'équation f (x) = 0. On se donne pour cela une valeur de départ x0 et un pas p.
On se déplace tout d'abord d'un pas p et on essaie x0+p: si f (x0) et f (x0+p) sont de signes contraires, on sait que la solution recherchée se situe entre x0 et x0+p, sinon, on se déplace à nouveau du pas p: si f (x0) et f (x0+2p) sont de signes contraires, on sait que la solution recherchée se situe entre x0+p et x0+2p, sinon, on rajoute à nouveau p, ...
On continue ainsi tant que on n'a pas dépassé la solution.
x | f (x) |
---|
Exercice 1:
Compléter le programme python de balayage suivant:
def f(x):
return -x**3+2
x0=0
pas=0.1
x=x0
while ( ... ) :
x=x+pas
print("Encadrement:")
print( ... ," < alpha < ", ... )
Méthode par dichotomie
La méthode par dichotomie est une autre méthode de recherche, par exemple de la solution de l'équation f(x)=0 (plus précisément d'un encadrement de cette solution).Dans cette méthode, on part d'un encadrement a < α < b de la solution, idéalement bien sûr tel qu'on peut appliquer le TVI pour f sur [a,b]
On coupe en deux cette intervalle, en son milieu m = a + b2 .
Si f (a) et f (m) sont de même signe, alors la solution recherchée ne se trouve pas entre a et m, mais donc entre m et b et on recommence comme précédemment avec la valeur de m à la place de a, et b inchangé
Sinon, donc si f (a) et f (m) sont de signes contraires, alors la solution recherchée se trouve en fait entre a et m et on recommence comme précédemment avec la même valeur de a mais m à la place de b.
On continue ainsi tant que la précision, c'est-à-dire l'écart b - a entre a et b, est plus grand que souhaité que la précision souhaitée.
Exercice 2:
- Compléter le programme python de recherche par dichotomie:
def f(x): return -x**3+2 a=0 b=2 p=0.01 while ( ... p): m= ... if (f(a)*f(m) ...): ... else: ... print("Valeur approchée:") print( ... ) print("Encadrement:") print( ... ," < alpha < ", ... )
- Modifier le programme précédent pour qu'il compte aussi le nombre de calculs, ou "boucles while", effectués, et l'affiche à la fin.
Méthode de Newton
La méthode de Newton est une méthode dite de descente: on passe d'une valeur approchée de la solution à l'équation f (x) = 0 en "descendant" le long de la tangente à la courbe de f. Exercice 3:
- Écrire l'équation de la tangente à la courbe de f au point d'abscisse
xi.
Déterminer alors l'expression du réel xi+1 abscisse du point d'intersection de la tangente et de l'axe des abscisses. - Compléter et exécuter le programme suivant:
# définition de la fonction def f(x): y=-x**2+2; return y # définition de la dérivée def fp(x): y= ... return y N=3; for i in range(N): x= ... print(x)
Voir aussi: