• Aucun résultat trouvé

R ÉSOUDREUNEÉQUATIONDUTYPE f ( x ) = 0

N/A
N/A
Protected

Academic year: 2021

Partager "R ÉSOUDREUNEÉQUATIONDUTYPE f ( x ) = 0"

Copied!
5
0
0

Texte intégral

(1)

R ÉSOUDRE UNE ÉQUATION DU TYPE f (x) = 0

T P 1 - SIM-NUM

1 Objectif

L’objectif de ce tp est de calculer la racine carrée d’un nombre à l’aide de méthodes différentes :

a∈R+, trouver x∈R+/f (x)= x2a=0

Il s’agit alors d’écrire sous Python ou Scilab , le programme per- mettant de résoudre cette équation à partir des méthodes suivantes :

• méthode par dichotomie

• méthode de Lagrange

• méthode de Newton

• utilisation de la bibliothèque (Python ou Sci- lab)

• méthode de Schröder (ordre 3)

0 1 2

0 1 2 3

4 y1(x)= x2

y2(x)= x

a1

a2

a1a2

a1

FIGURE1 – Fonctions y1(x)=x2et y2(x)= x

2 Stratégies de résolutions

2.1 Paramètres

Pour l’exercice, on prendra a=2 et un seuil de convergenceε=108.

Puisque f (x)= x2a et a>0, on appellera Erreur, la fonction Err définie par Err(x)= f (x) a . Le critère de convergence est alors atteint quand on trouve x∈R+/|Err(x)| ≤ε.

(2)

2.2 Méthode par dichotomie

2.2.1 Principe

Sur une domaine de définition où la fonction f est monotone et coupe l’axe des abscisses, rechercher par dichotomie la solution x de l’équation f (x)=0 revient à diviser l’intervalle en deux, garder celui qui contient la solution et recommencer, jusqu’à ce que l’erreur normée soit inférieure au seuil de tolérance.

2.2.2 Initialisation

Q - 1 : A partir du logiciel mis à disposition, construire les fonctions retournant f (x) et Err(x) à partir des données x et a.

D’après la FIG1, en appelant xsolla solution de f (x)=0:

si a>1 alors xsol∈[1,a]

si a<1 alors xsol[a,1]

Q - 2 : A partir de cette constatation, écrire les lignes permettant de proposer un premier intervalle pour la recherche de xsol.

2.2.3 Réalisation

Si f (xgn).f (xdn) < 0, comme f est strictement monotone surR+, lorsqu’on coupe l’intervalle [xgn,xdn] en 2 en

xn+1 =

xgn+xdn

2 alors

si f (xn+1).f (xgn)<0 alors xsol∈h

xgn,xn+1i

si f (xn+1).f (xgn)>0 alors xsol[xn+1,xdn]

si f (xn+1).f (xgn)=0 alors xsol= xn+1

Q - 3 : A partir de cette constatation, construire la boucle de recherche de xsol par la méthode de dichotomie ayant pour test d’arrêt

xgnxdn < ε.

2.2.4 Algorithme

Entrées : Err,a, ε si a>1 alors

xgn,xdn←1,a sinon

xgn,xdna,1 f gErr(xgn)

tant que xdnxgn> εfaire xn(xgn+xdn)/2 f nErr(xn) si fn.fg<0 alors

xdnxn sinon

xgnxn f gf n Sorties : xn

2.3 Méthode de la corde de Lagrange

(3)

2.3.1 Principe

Au lieu de scinder l’intervalle initial [xgn,xdn] en deux intervalles de même longueur, la méthode de la corde de Lagrange cherche à valoriser la borne la plus proche de la solution en cherchant l’intersection xn+1entre l’axe des abscisses et la corde reliant le point

xgn,f (xgn)

au point (xdn, f (xdn)).

L’intervalle [xgn,xdn] est alors couper xn+1tel que :

xn+1 = xdn.f (xgn)−xgn.f (xdn) f (xgn)− f (xdn) 2.3.2 Réalisation

Q - 4 : Adapter le programme pour la méthode par dichotomie à la méthode de la corde de Lagrange avec pour test d’arrêt|Err(xn)|< ǫ

Q - 5 : Observer le nombre d’itérations avant convergence pour les deux méthodes avec a∈ {0.4,0.7,4,7,20,60} avec pour test d’arrêt|Err(xn)|< ǫ.

2.4 Méthode de Newton

2.4.1 Principe

La méthode de Newton, utilise la monotonie de la fonction f au voisinage de xsol, pour calculer à partir d’un premier candidat x0, une solution approchée par le développement limité à l’ordre 1 de la fonction f autour de ce candidat. En effet, la fonction f étant de classeC1surR+:

0= f (xsol)= f (x0)+ f(x0).(xsolx0)+o(xsolx0)

Ne connaissant pas xsol, on cherche alors x1solution exacte du problème approché dans lequel on néglige o(xsolx0):

f (x1)≈0= f (x0)+ f(x0).(x1x0) ⇒ x1= x0f (x0) f(x0)

Le processus est donc répété en remplaçant x0par x1jusqu’à ce que le critère de convergence soit satisfait.

2.4.2 Réalisation

Q - 6 : Déterminer f(x) puis construire une fonction retournant f(x) à partir des données x et a.

Q - 7 : Après avoir initialisé le problème en posant comme premier candidat x0 = 1, construire la boucle de récurrence avec pour test d’arrêt|Err(xn)|< ǫ.

2.4.3 Algorithme

2.5 Méthode de la fausse position

(4)

Entrées : f,f,x0, ε xix0

f xf (xi)

tant que|f x|> εfaire f pxf(xi) si fpx=0 alors

break sinon

xixif x/f px f xf (xi) Sorties : xi

2.5.1 Principe

La méthode de Newton, oblige à connaître l’expression de f(x) (ou la matrice Jacobiene dans le cas des fonctions de plu- sieurs variables), ce qui peut parfois être lourd à exprimer et prendre beaucoup de temps de calcul.

Comme la méthode de Newton, la méthode de la fausse position utilise un développement limité à l’ordre 1 de la fonction.

Cependant, le calcul de la dérivé n’est pas effectué. La méthode de la fausse position utilise alors une estimation de la dérivée basée sur les deux points précédents :

f(xn)≈ f (xn)− f (xn1) xnxn1

2.5.2 Réalisation

Q - 8 : En posant x0 = 1 et x1 = 2, adapter le programme basé sur la méthode de Newton à la méthode de la fausse position.

Q - 9 : Observer le nombre d’itération nécessaire pour obtenir la convergence des deux méthodes précédentes.

2.6 Méthode de Schröder d’ordre 3

2.6.1 Principe

Les méthode de Schröder d’ordre n sont basées sur des développements limités de f à l’ordre n−1. Ainsi dans le cas d’une méthode de Schröder d’ordre 3, la relation de récurrence entre xnet xn+1est :

xn+1 = xnf (xn)

f(xn)− f′′(xn).f2(xn) 2.f3(xn) 2.6.2 Réalisation

(5)

Q - 10 : A partir de la relation de récurrence précédente, adapter le programme basé sur la méthode de Newton à la méthode de Schröder d’ordre 3

2.7 Bibliothèques

Les codes Python et Scilab ont des fonctions optimisées pour calculer rapidement la solution du problème f (x)=0.

Méthode Python

Dichotomie scipy.optimize.bisect(fct,borne inf,borne sup) Newton scipy.optimize.newton(fct,candidat 1, fct dérivée)

Pour Python et Scilab , la fonction fsolve (scipy.optemize.fsolve), permet de résoudre le problème f (x)=0, même lorsque x n’est plus un scalaire mais un vecteur. Il convient alors de fournir la matrice jacobienne (matrice des dérivées partielles de la fonction) pour permettre à l’algorithme de tourner.

Q - 11 : Tester la fonction fsolve au problème posé en introduction.

3 Comparaisons

Q - 12 : Editer un programme permettant de comparer le nombre d’itération et le temps de calcul de chacune des méthodes présentées dans le Tp.

Références

Documents relatifs

Propriété n°1 (Unicité et existence de la fonction exponentielle) Il existe une unique fonction f , définie et dérivable sur R , telle que

Propriété n°1 (Unicité et existence de la fonction exponentielle) Il existe une unique fonction f , définie et dérivable sur R , telle que

- il nota i le nombre imaginaire utilisé dans le chapitre des nombres imaginaires - il introduisit la lettre e pour la base de la fonction exponentielle ;5. - il utilisa la lettre

Propriété n°1 (Unicité et existence de la fonction exponentielle) Il existe une unique fonction f , définie et dérivable sur R , telle que

La fonction f n’est pas dérivable en 0 et le graphe de f possède une tangente verticale en

Montrer qu'il n'existe pas de fonction périodique qui di- verge vers +∞ en +∞.. Donner un exemple de fonction périodique

(Ederiv21.tex) Soit f une fonction deux fois d´ erivable dont la d´ eriv´ ee ne s’anulle pas dans un intervalle I... (Ederiv14.tex) Le th´ eor` eme de la limite de la d´ eriv´ ee

Montrer qu'une fonction somme d'une fonction croissante et d'une fonction dé- croissante est à variations bornées.. On suppose que V f ([a, b]) contient un