Chapitre 6
Algorithmes num´eriques
6.1 Equations non lin´eaires
Le probl`eme g´en´eral
Etant donn´ee une fonction f:I→IR 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 b−a > ǫ faire
c←a+b
2;
si f(a)f(c)≤0alors
b←c;
sinon
a←c;
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;
n←0 ; x←x0;
Initialisation du bool´een arret;
tantque arret vaut F alse faire
x←g(x) ;n←n+ 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 < 1∀x∀y|g(x)−g(y)| ≤ k|x−y|,
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 m´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 α=βl´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 =xn−f(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,f′et 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;
n←0 ; x←x0;
Initialisation du bool´een arrˆet;
tantque arrˆet vaut F alse faire
x←x−f(x)
f′(x);n←n+ 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 x2−2, 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 un−sq2avec 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,xn−1. La formule pour xn+1 :
xn+1 =xn−f(xn)
f[xn, xn−1].
Etude de l’erreur : si ℓest solution, et en=ℓ−xn, alors :
en+1 =−1
2
f′′(un)
f′(vn)enen−1, 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{|x−y|, 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:=T∗exp ( 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.eiπ/3
3,f3:x7→
1 + eiπ/3+x.e−iπ/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 l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!