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.






  < α <  
Valeurs balayées
xf (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 + b/2 .
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.



0  




Exercice 2:
  1. 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 < ", ... )
    
  2. 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.



0


Exercice 3:
  1. É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.
  2. 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:
LongPage: h2: 3 - h3: 0