Chapitre 6
Algorithmes num´eriques
6.1 Equations non lin´eaires
Le probl`eme g´en´eral
Etant donn´ee une fonction f:IIR continue, le probl`eme est d’obtenir efficacement une
(resp : les) solutions de f(x) = 0 dans un intervalle I. La condition f(a)f(b)<0 assure l’existence
d’une solution. Une ´etude th´eorique plus fine peut ˆetre n´ecessaire pour isoler une unique solution
dans un intervalle.
6.1.1 Dichotomie
Entr´ee:a < b,fcontinue avec f(a)f(b)0, pr´ecision ǫ.
Sortie: encadrement d’une solution de f(x) = 0.
tantque ba > ǫ faire
ca+b
2;
si f(a)f(c)0alors
bc;
sinon
ac;
fsi
ftantque
retourner a, b;
Algorithme 1: Dichotomie
L’algorithme donne une solution avec la pr´ecision ǫavec un nombre d’it´eration n=E(log2(b
a)log2(ǫ)) + 1.
Exercice 6.1.1 En utilisant les fonction usuelles du module math´ematique de Python, appliquez
la Dichotomie entre [2,4] `a la fonction sin pour trouver une valeur approch´ee de π.
thonverb
(python)
from math import
pri nt s i n ( 1 .5 7 )
✝ ✆
1
6.1.2 Algorithme du point fixe
Entr´ee: terme initial x0et fonction g;
Sortie:net xn;
n0 ; xx0;
Initialisation du bool´een arret;
tantque arret vaut F alse faire
xg(x) ;nn+ 1;
mise `a jour de arrˆet;
ftantque
retourner n, x;
Algorithme 2: Algorithme du point fixe
Condition d’arrˆet : pr´ecision, sortie de l’intervalle, nombre maximal d’it´eration.
Th´eor`eme 6.1.2 Si gest une application d´efinie sur [a, b]telle que :
x[a, b]g(x)[a, b],et
gest contractante : k < 1xy|g(x)g(y)| ≤ k|xy|,
alors gadmet un unique point fixe sur [a, b], et l’algorithme du point fixe converge vers , pour
toute valeur initiale x0dans [a, b].
Accroissement finis : la condition de contraction est satisfaite si la d´eriv´ee est major´ee en valeur
absolue par k < 1.
Exercice 6.1.3 On souhaite utiliser la ethode pr´ec´edente avec u0= 1 et f1=x+ 2
2xet f2=
x2+ 2
2x.
1) Programmez n it´erations en Python. Etudiez la convergence selon u0et sa vitesse.
2) Quelle instruction xcas donne directement le dessin ci dessous ?
Vitesse de convergence : Consid´erons une suite (un) de limite , et en=un. Si on a une
majoration |en+1| ≤ k|en|, on dit que la convergence est (au moins) lin´eaire. Si on a une majoration
|en+1| ≤ k|en|p, on dit que la convergence est (au moins) d’ordre p(quadratique pour p= 2). Dans
le th´eor`eme du point fixe pr´ec´edent, la convergence est au moins lin´eaire.
6.2 M´ethodes de Newton et de Lagrange
On consid`ere l’´equation
f(x) = 0 , x [a, b].
On suppose que fest de classe C2, et change de signe sur [a, b]. La m´ethode consiste `a remplacer,
la fonction par une interpolation de degr´e 1 : P1(x) = f[α] + f[α, β](xα). (Dans le cas α=βe
diff´erence divis´ee ´etendue est : f[α, α] = f(α).
2
Sous r´eserve que la diff´erence divis´ee f[α, β] soit non nulle, cela conduit `a une solution ap-
proch´ee : αf(α)
f[α, β].
On recommence le proc´ed´e avec un support αn,βnam´elior´e `a chaque it´eration.
6.2.1 M´ethode de Newton (tangente)
On utilise `a chaque it´eration le support xn,xn. La formule pour xn+1 :
xn+1 =xnf(xn)
f(xn).
Etude de l’erreur : si est solution, et en=xn, alors :
en+1 =1
2
f′′ (un)
f(xn)e2
n, a < un< b .
Th´eor`eme 6.2.1 Si f: [a, b][a, b]est une fonction de classe C2, avec : f(a)f(b)<0,fet f′′
de signe constant sur [a, b], et
f(a)
f(a)
< b a ,
f(b)
f(b)
< b a ,
alors il y a une unique solution dans l’intervalle, et la m´ethode de Newton converge vers cette
solution avec une vitesse au moins quadratique.
Entr´ee: terme initial x0et fonction f;
Sortie:net xn;
n0 ; xx0;
Initialisation du bool´een arrˆet;
tantque arrˆet vaut F alse faire
xxf(x)
f(x);nn+ 1;
mise `a jour de arrˆet;
ftantque
retourner n, x;
Exercice 6.2.2 On souhaite illustrer la convergence quadratique. Nous utiliserons pour cela un
logiciel permettant une pr´ecision arbitraire tel que xcas.
1) Pour n’effectuer ce calcul qu’une seule fois, affectez `a la variable sq2 une valeur approch´ee
de sqrt2avec 1000 chiffres.
2) Programmez la m´ethode de Newton pour la fonction x22, et v´erifiez qu’elle fonctionne.
3) a) Adaptez maintenant votre programme pour qu’il calcule la suite unavec 1000 chiffres.
b) Affichez `a chaque it´eration la diff´erence unsq2avec 15 chiffres significatifs.
c) Commentez la convergence quadratique. En combien d’it´erations obtenez vous 1000 chiffres
exacts pour sqrt2?
6.2.2 M´ethode de Lagrange (s´ecante)
On utilise `a chaque it´eration le support xn,xn1. La formule pour xn+1 :
xn+1 =xnf(xn)
f[xn, xn1].
Etude de l’erreur : si est solution, et en=xn, alors :
en+1 =1
2
f′′(un)
f(vn)enen1, a < un, vn< b .
3
6.2.3 Exercice ; Fractals
On consid`ere l’ensemble Edes compacts de C. On munit Ede la distance de Haussdorff :
d(K1, K2) = max {max{d(x, K2), x K1}, max{d(x, K1), x K2}}
o`u la distance d’un point `a un compact d(x, K) n’est autre que inf{|xy|, y K}.
On admettra que (E, d) est un espace m´etrique complet, et donc que le th´eor`eme du point fixe
est valable.
1) Essayez :
(giac/xcas)
T:= t r i a n g l e (0 ,1 ,1+ i ) ;
T2:=T+1;
T3:=Texp ( i p i / 3 ) ;
T( 1 / 3 ) ;
T/ 3 ;
✝ ✆
Pour translater une suite d’objets geometriques, on utilisera la fonction translation plutot qu’une
syntaxe du type : [D1,D2]+1 qui risque fort de ne pas marcher `a cause de l’addition des vecteurs
de taille differentes. En revanche on remarquera que la rotation et l’homoth´etie d’une suite d’objets
g´eom´etriques marchent parfaitement : [D1,D2]*i;
2) On consid`ere les applications de C dans C : f1:x7→ x/3, f2:x7→ 1 + x.e/3
3,f3:x7→
1 + e/3+x.eiπ/3
3,f4:x7→ 2 + x
3. Repr´esentez sous xcas l’image par ces applications du segment
[O, 1]. On pourra trouver la syntaxe d’une similitude sous xcas.
3) On consid`ere l’application F:E → E d´efinie par K7→
4
[
i=1
fi(K).
4) Cr´eez une fonction qui dessine l’it´er´e n-i`eme d’un compact Kpar F.
a) Testez votre fonction avec le segment [0,1]. (Attention `a ne garder qu’une couche de
crochets pour vos listes d’objets g´eom´etriques)
b) Testez votre fonction avec un autre compact de C (par exemple un sapin). Conclusion ?
4
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !