Vous êtes sur la page 1sur 3

Université de La Réunion - M1RNET

TP Modélisation et méthodes numériques


Résolution d’équations non linéaires
Introduction :
En analyse numérique, la ​méthode de la fausse position ​ou ​méthode Regula falsi est un
algorithme de recherche d'un zéro d'une fonction qui combine les possibilités de la méthode
de dichotomie et de la méthode de la sécante. Au cours de ce TP, vous découvrirez la
méthode Regula Falsi et l'appliquerez pour résoudre une équation non linéaire de type f(x) =
0. Tous les programmes du TP seront écrits à partir du logiciel Python.

Explication de la méthode​ :
Soit f: [a ; b]⟶ R une fonction continue avec f(a) f(b)< 0 (cette fonction satisfait donc les
hypothèses permettant d’appliquer la méthode par dichotomie).
La méthode par dichotomie converge lentement car à chaque étape la longueur de
l’intervalle [a ; b] encadrant la solution S recherchée est exactement multipliée par 1/2. Le but
de la méthode ​regula falsi est de fournir à chaque étape un nouvel encadrement qui
multiplie la longueur de l’encadrement précédemment considéré par un facteur inférieur à
1/2.
Pour cela, nous approximons la fonction f par la droite passant par les points (A,B) de
coordonnées respectives (a ; f(a)) et (b ; f(b)). L’abscisse x1 du point d’intersection de cette
droite avec l’axe des x constitue une des bornes du nouvel encadrement. Le nouvel
encadrement considéré ([a ; x1] ou [x1 ; b]) est choisi, comme pour la méthode par
dichotomie, de façon à ce que les images des bornes soient de signes opposés (f(a) f(x1) <0
ou f(x1) f(b)<0) . Nous répétons l’opération jusqu’à atteindre la précision désirée.

1/3
Relation de récurrence : Plaçons-nous dans le cas où la fonction est, comme dans l’exemple
ci-dessus, strictement croissante et concave sur [a ; b]. Considérons alors une valeur de x​n​.
Alors, x​n+1​ est l’abscisse de l’intersection de la sécante (AM​n​) avec l’axe des abscisses.

Exercice à réaliser :

1. Compléter l’algorithme de la méthode décrite ci-dessus.

Programme​ Regula Falsi


Données d’entrée ​: a, b, f, e
# a et b : les bornes de l’intervalle
# f : la fonction étudiée
# e : la précision
Initialisations
k=1 ​# pour compter les itérations
x1= a
Tant que​ Valeur Absolue de f(x1) > e ​faire
x1 = …
Si
….
Sinon
….
fin si
Afficher le n° de l’itération, les valeurs de x1, f(x1), a et b
….
fin de tant que
fin de Programme
2/3
2. Implémenter le programme de Regula Falsi sous Python en le commentant
judicieusement. Utiliser l’instruction de définition de fonction en python :
def ​RegulaFalsi(a,b,f,e):
…..
….
…..
print​(“La solution est :”,....)

3. On se propose de résoudre l’équation (E) :


a. Ecrire un programme qui représente graphiquement l’équation à résoudre
en utilisant l’instruction de définition de fonction ​def ​f(x)
b. Donner un intervalle grossier de la solution (à déterminer graphiquement)
c. Modifier votre programme en ajoutant le programme de Regula Falsi de la
question précédente
d. Tester le programme sur l’intervalle [-3,0], pour une approximation de 10​-5
près et afficher à chaque itération :
i. le numéro de l’itération (k dans l’algorithme)
ii. les valeurs de x1​k​, f(x1​k​), a​k​ et b​k​ comme prévu dans l’algorithme

n° iteration k x1​k f(x1​k​) a​k b​k

Consignes complémentaires :​ Vous devez rendre sous format numérique :


1. Un fichier (​Reponse-Nom​) comprenant :
a. l’algorithme complété (Question 1)
b. le graphe obtenu (Question 3a)
c. l’intervalle de la solution à l'équation (Question 3b)
d. les valeurs à chaque itération (Question 3d)
2. Un fichier (​Code-Nom)​ contenant les fonctions et programme principal :
a. def RegulaFalsi (Question 2)
b. def f (Question 3a)
c. programme qui appelle les fonctions pour résoudre l’équation (Question 3c).

3/3

Vous aimerez peut-être aussi