dichotomie, secante, newton. il

publicité
Méthodes d’approximation
de zéros de fonctions réelles
Université Claude Bernard–Lyon I
CAPES de Mathématiques : Oral 1
Année 2008–2009
On pourra prendre pour base la leçon proposée par Daniel Perrin dans http://www.math.
u-psud.fr/~perrin/CAPES/Equations/equations07.pdf ou Denis Vekemans dans http:
//megamaths.perso.neuf.fr/oral1/cfon-04c13.pdf. Toutefois, quelques remarques me
semblent nécessaires pour préciser certaines choses ou répondre à un certain nombre de questions évidentes (enfin, évidentes pour le jury...).
• Cadre : Le cadre des théorèmes est très restrictif. Il suppose implicitement qu’un travail
préliminaire a été accompli pour localiser un zéro et un intervalle assez petit qui l’entour.
Outils rudimentaires pour ce travail : tracer le graphe, prendre des valeurs plus ou moins
au hasard, étudier les variations... Pour les polynômes, il y a tout un tas de méthodes
plus ou moins évoluées, telle la règle des signes de Descartes. Glissons cela rapidement,
il vaut mieux éviter d’étaler une culture que l’on n’a pas...
• En fait, une fonction continue “typique” est bien plus irrégulière que ce qu’on imagine :
son graphe ressemble à celui d’un mouvement brownien, et en particulier, il n’y a aucun
intervalle sur lequel elle est monotone. (Il paraı̂t que l’on peut donner un sens précis
à cela...) En revanche, si une fonction de classe C1 s’annule en un point, il n’y a pas
de raison que sa dérivée s’y annule aussi (bien sûr, cela peut arriver !) ; idem pour la
dérivée seconde d’une fonction C2 . Au voisinage d’un zéro, les hypothèses sont donc assez
génériques.
• Plutôt que distinguer des cas selon le signe de f 0 ou f 00 , dire tout de suite que l’on peut
supposer f 0 > 0 et f 00 > 0 quitte à remplacer f par x 7→ ±f (±x) (cf. II (a)).
• On présentera typiquement trois méthodes : dichotomie, sécante, Newton. Il est indispensable de donner à chaque fois une majoration de l’erreur. Pour le choix de la preuve
à développer, je pense que celle de la dichotomie est un peu trop simple et que celle de
la sécante est un peu trop compliquée.
• Pour la dichotomie, ne pas hésiter à presenter la méthode comme un outil théorique pour
prouver le théorème des valeurs intermédiaires (qu’on ne prend pas comme prérequis)
et comme un outil numérique pour le cœur de la leçon. Remarquer au moins à l’oral
que c’est la méthode la plus robuste ; en particulier, elle marche pour des fonctions non
dérivable avec la même efficacité.
• Si f est C1 et pas C2 , on peut a priori appliquer toutes les méthodes (sécante, Newton),
mais les majorations d’erreur sont évidemment inopérantes. La question se pose de savoir
si les méthodes convergent quand même ! Moyennant une hypothèse de convexité, c’est
le cas (exercice...). Mais sans ça, imaginer un exemple où la suite (xn ) n’est pas bien
définie. Dans le même esprit : que donne la méthode de Newton si f 0 s’annule en α (et
seulement en α) ?
• Exemples et calculatrice : la stratégie consistant à en traiter un avec toutes les méthodes
à la fin semble bonne. Comme d’habitude ces questions ne sont pas aobrdées ici mais il
ne faut pas les laisser de côté pour autant.
1
I Dichotomie
Soit a < b deux réels et f : [a, b] → R une fonction continue. On suppose que f (a)f (b) < 0.
On définit alors par récurrence deux suites (an ) et (bn ) par a0 = a, b0 = b et
 an + bn

n

si f (an )f an +b
≤ 0,

 an ,
2
2
∀n ∈ N, (an+1 , bn+1 ) =

an + bn


sinon.
, bn

2
Montrons par récurrence que pour tout n ∈ N, on a :
an ≤ an+1 ≤ bn+1 ≤ bn ,
bn − an =
b−a
,
2n
f (an )f (bn ) ≤ 0.
Pour n = 0, il n’y a qu’à vérifier la première série d’inégalités, qui va de soi : on a soit a1 = a
et b1 = (a + b)/2, soit a1 = (a + b)/2 et b1 = b.
Soit n ∈ N, supposons la propriété vraie pour n. On a soit an+2 = an+1 et bn+2 = (an+1 +
bn+1 )/2, soit an+2 = (an+1 +bn+1 )/2 et bn+2 = bn+1 ; dans les deux cas, vu que an+1 ≤ bn+1 , on
a immédiatement an+1 ≤ an+2 ≤ bn+2 ≤ bn+1 . L’égalité bn+1 − an+1 = (bn − an )/2 = (b − a)/2n
va de soi.
Enfin, comme f (an ) et f (bn ) sont de signe contraire, f ((an + bn )/2) n’a pas le même signe que
l’un de ces deux nombres : si f (an )f ((an + bn )/2) > 0, alors f (bn )f ((an + bn )/2) ≤ 0. La
définition de (an+1 , bn+1 ) assure donc que f (an+1 )f (bn+1 ) ≤ 0.
Ainsi, la propriété annoncée est prouvée par récurrence. Les suites (an ) et (bn ) sont adjacentes,
leur limite commune α vérifie, par continuité de f : f (α)2 ≤ 0, c’est-à-dire : f (α) = 0. On
vient de démontrer le théorème des valeurs intermédiaires et d’exhiber un algorithme qui donne
un encadrement d’un zéro de f (pas nécessairement le seul si f n’est pas monotone).
Remarque : Pour un algorithme de dichotomie, on prend généralement en entrée a, b et la
précision ε à laquelle on souhaite l’approximation d’un zéro de f . Il est intéressant de noter au
passage le nombre de passages dans la boucle (pour comparer différentes méthodes).
Exercice : À l’aide de la méthode de dichotomie, montrer sans utiliser le théorème des accroissements finis que pour f dérivable sur [a, b], si f 0 < 0, alors f est strictement décroissante.
(Indication : procéder par contraposée. En supposant qu’il existe c < d avec f (c) < f (d), exhiber deux suites adjacentes (cn ), (dn ) telles que (f (dn ) − f (cn ))/(dn − cn ) ≥ (f (d) − f (c))/(d −
c) > 0, et montrer qu’en la limite ` de ces suites, f 0 (`) ≥ 0. La fin est assez facile. Voir
http://www.math.u-psud.fr/~perrin/CAPES/analyse/fonctions/Lagrange.pdf.)
II Méthodes à un pas
Dans la suite, on suppose que f : [a, b] → R est de classe C2 strictement croissante et strictement
convexe, c’est-à-dire que f 0 > 0 et f 00 > 0. On suppose aussi f (a)f (b) < 0, et f a donc un
unique zéro α ∈ [a, b[.
Le principe de ces méthodes est de construire une suite (xn ) qui converge vers α : on choisit
une droite passant par (xn , f (xn )) pour approximer la courbe, ne dépendant que de xn , et on
définit xn+1 comme l’abscisse de l’intersection de cette droite et de l’axe des abscisses.
1◦ Remarques préliminaires
(a) Symétries Quitte à remplacer f par l’une des quatre fonctions suivantes, on peut et on
va supposer sans perte de généralité que f est strictement croissante et convexe :
f1 : x 7→ f (x),
f2 : x 7→ f (−x),
f3 : x 7→ −f (x),
f4 : x 7→ −f (−x).
(Si f = f1 est croissante convexe, f2 est décroissante convexe, f3 est décroissante concave et f4
est croissante concave – et réciproquement.)
2
(b) Équation de droites Considérons les points A(a, f (a)) et B(b, f (b)) sur le graphe de f ,
et soit c l’abscisse de l’intersection de la droite (AB) avec l’axe des abscisses. On vérifie sans
peine qu’alors, en notant p la pente de cette droite (supposée non nulle), on a :
c=
af (b) − bf (a)
f (a)
=a−
.
f (b) − f (a)
p
2◦ Méthode de la “sécante à pente fixe”
On suppose connaı̂tre m, M ∈ R qui bornent f 0 : pour tout x ∈ [a, b], m ≤ f 0 (x) ≤ M . On
pose alors p = m+M
et on définit une suite (xn ) par x0 = b et :
2
xn+1 = xn −
f (xn )
.
p
On montre que sous les hypothèses précédentes, on a :
|xn+1 − α| ≤
M −m
|xn − α|.
M +m
3◦ Méthode de Lagrange
On définit x0 = a et, pour n ≥ 0, xn+1 comme l’intersection de la droite passant par les points
(b, f (b)) et (xn , f (xn )) (sécante à la courbe). Ainsi :
xn+1 =
xn f (b) − bf (xn )
= xn −
f (b) − f (xn )
f (xn )
.
f (b)−f (xn )
b−xn
Cela a un sens : sous les hypothèses de monotonie et de convexité précédentes, on montre par
récurrence que a ≤ xn ≤ α et donc que xn+1 est bien défini. En effet, l’expression
xn+1 =
f (b)
−f (xn )
xn +
b
f (b) − f (xn )
f (b) − f (xn )
|
{z
}
|
{z
}
λ≥0
1−λ≥0
de xn+1 comme barycentre de xn et b avec des coefficients positifs (f (xn ) ≤ 0 car xn ≤ α)
montre que xn ≤ xn+1 ≤ b. Par convexité de f , le point (xn+1 , 0) sur la sécante est au-dessus
de (xn+1 , f (xn+1 )) sur la courbe, ce qui se traduit par f (xn+1 ) ≤ 0 = f (α), soit xn+1 ≤ α.
Majoration de l’erreur
Soit
m1 = inf |f 0 | et
[a,b]
M2 = max |f 00 |.
[a,b]
On pose de plus, pour x ∈ [a, α],
g(x) =
xf (b) − bf (x)
,
f (b) − f (x)
d’où xn+1 = g(xn ). On veut majorer |g(x) − α|. Pour cela, l’expression de g(x) comme
barycentre de b et x donne sans calcul :
g(x) − α =
f (b)
−f (x)
(x − α) +
(b − α).
f (b) − f (xn )
f (b) − f (x)
Par le théorème des accroissements finis, le dénominateur s’écrit f 0 (θ)(x−b) pour θ convenable :
faute de mieux, on va le minorer par m1 |x−b|. Cela incite à faire apparaı̂tre b−x au numérateur :
b−x
α−x
b−α
g(x) = −
f (b) +
f (x) .
f (b) − f (x) b − x
b−x
3
On voit apparaı̂tre dans la parenthèse le barycentre de f (b), affecté du coefficient µ = (α −
x)/(b − x) ≥ 0 et de f (x), affecté du coefficient 1 − µ ≥ 0. L’idée suivante, c’est se rappeler
que l’on veut faire apparaı̂tre des dérivées d’ordre 2 ; d’où, formule de Taylor et, au départ,
différences de valeurs de f . Cela légitime d’introduire f (b) − f (α) au lieu de f (b) :
b−x
α−x
b−α
g(x) = −
(f (b) − f (α)) +
(f (x) − f (α)) .
f (b) − f (x) b − x
b−x
Écrivons donc les formules de Taylor : il existe u ∈ ]x, α[ et v ∈ ]α, b[ tels que
(
2
f (b) − f (α) = (b − α)f 0 (α) + (b−α)
f 00 (v),
2
2
f (x) − f (α) = (x − α)f 0 (α) + (x−α)
f 00 (u).
2
Petit miracle : la simplification des deux termes (b − α)(x − α)f 0 (α). Il reste :
b − α 00
x − α 00
b−x
(b − α)(x − α)
f (v) +
f (u) .
g(x) − α = −
f (b) − f (x)
b−x
b−x
Le terme entre les grandes parenthèses est un barycentre de deux valeurs de f 00 avec coefficients
1 − µ et µ, donc il est majoré par M2 . Ainsi :
|g(x) − α| ≤
M2 (b − a)
|x − α|.
2m1
En appliquant à x = xn , et en supposant b − a assez petit pour que le coefficient soit < 1, on
voit que la suite xn converge vers α à une vitesse au pire géométrique.
Voir une autre majoration et une autre preuve (plus élémentaire) par Daniel Perrin (réf. au
début).
4◦ Méthode de Newton
Dans ce cas, on choisit pour droite la tangente à la courbe de f passant par (xn , f (xn )). Sa
pente étant f 0 (xn ), on définit (xn ) par x0 = b et, pour n ≥ 0 :
xn+1 = xn −
f (xn )
.
f 0 (xn )
On montre sans peine que cette suite est bien définie et décroissante : pour tout n, α ≤
xn ≤ xn+1 ≤ b. On en déduit facilement qu’elle converge vers α, et on montre facilement la
majoration suivante :
M2
|xn+1 − α| ≤
|xn − α|2 .
2m1
L’existence de ce carré est précieuse : posons c = log10 (M2 /2m1 ), de sorte que la constante
est 10c . Supposons que n soit assez grand pour qu’on connaisse α avec k décimales exactes
(i.e. |xn − α| ≤ 10−k , et k grand). Alors au rang suivant, on a une approximation avec 2k − c
décimales exactes.
En résumé, on double presque le nombre de décimales exactes à chaque itération : c’est bien
plus efficace que la convergence des méthodes précédentes.
Exemple. Prenons f (x) = xq − β pour x ≥ 0, où q ∈ N∗ et β > 0 fixés. On calcule que
1
β
g(x) =
(q − 1)x + q−1 .
q
x
Pour q = 2, l’algorithme est connu depuis Babylone (tablette YBC 7289, voir par exemple
http://www.bibnum.education.fr/mathematiques/tablette-ybc-7289).
Remarque. La méthode ne va pas bien se comporter si f 0 (α) = 0, car on n’aura pas de
minoration de |f 0 |. Faire un dessin pour l’expliquer.
4
5◦ Principe de toutes ces méthodes à un pas
On constate que ces méthodes à un pas consistent à remplacer l’équation f (x) = 0 par une
équation g(x) = x, où g : ]a, b[ → R est une fonction de la forme
g(x) = x −
f (x)
,
p(x)
où p(x) est la pente de la droite qui sert à approximer la courbe. Ceci permet de voir la solution
α comme limite d’une suite récurrente définie par xn+1 = g(xn ).
Une telle suite, si elle converge vers un point fixe attractif α (tel que |g 0 (α)| < 1), possède en
gros deux comportements différents (référence : première épreuve du CAPES 1998) :
• soit g 0 (α) 6= 0 : on obtient facilement une majoration de la forme |xn+1 − α| ≤ k|xn − α|,
avec 0 < k < 1, et un peu plus de travail montre que xn −α est équivalent, pour n → +∞,
à Ck 0 n pour 0 < k 0 < 1 convenable ;
• soit g 0 (α) = 0 ; on supposera ici que g 00 (α) 6= 0 ; on obtient facilement une majoration
de la forme |xn+1 − α| ≤ k|xn − α|2 , et un peu plus de travail montre que xn − α est
n
équivalent, pour n → +∞, à Ck 2 pour 0 < k < 1 convenable.
On essaie pour cette raison de choisir p(x) de sorte que g 0 (α) = 0. Ceci équivaut à p(α) = f 0 (α),
condition remplie si on prend par exemple p(x) = f 0 (x) –comme dans la méthode de Newton !
6◦ Itération de Householder (just for the sake of it)
Ne croyons pas que l’histoire s’arrête nécessairement ici ! Au lieu de remplacer comme avec
Newton la courbe par sa tangente, on peut remplacer la courbe par sa parabole osculatrice,
c’est-à-dire f (x) par son DL d’ordre 2 au voisinage de xn : la fonction q définie par
q(x) = f (xn ) + (x − xn )f 0 (xn ) +
f 00 (xn )
(x − xn )2
2
possède deux racines
θ± (xn ) = xn +
−f 0 (xn ) ±
p
f 0 (xn )2 − 2f (xn )f 00 (xn )
.
f 00 (xn )
On a supposé f 0 > 0 et on a en tête que xn est une bonne approximation de α, si bien que
f (xn ) est petit : les racines sont réelles. Plus précisément, f 0 (xn ) ≥ m1 > 0 et f 00 (xn ) ≤ M2 .
On va faire un DL de θ± (xn ) :
q
00
n)
−f 0 (xn ) ± f 0 (xn ) 1 − 2f (xf 0n(x)fn )(x
2
θ± (xn ) = xn +
f 00 (xn )
)f 00 (xn )
f (xn )2 f 00 (xn )2
2 ))
−f 0 (xn ) ± f 0 (xn ) 1 − f (xfn0 (x
−
+
o(f
(x
)
n
2
4f 0 (xn )4
n)
= xn +
.
00
f (xn )
On choisit la racine θ+ , la plus proche de celle de la méthode de Newton :
θ+ (xn ) = xn −
f (xn )2 f 00 (xn )
f (xn )
−
+ o(f (xn )2 ).
f 0 (xn )
4f 0 (xn )3
Pour cette méthode, la suite des approximations est définie par :
xn+1 = xn −
f (xn )
f (xn )2 f 00 (xn )
−
.
f 0 (xn )
4f 0 (xn )3
Sous réserve que f soit C3 , la rumeur publique semble dire qu’il serait possible de démontrer
une majoration de la forme |xn+1 − α| ≤ C|xn − α|3 : à chaque étape, on triple le nombre de
décimales exactes.
5
III Une méthode à deux pas (just for the sake of it)
Il peut arriver que l’on ne dispose pas de formule analytique pour f 0 , ou que son calcul soit
trop coûteux en temps. Dans ce cas, on peut imaginer prendre pour droite approximante la
sécante passant par (xn , f (xn )) et (xn−1 , f (xn−1 )). On définit alors xn+1 par une récurrence à
deux pas :
f (xn )
xn−1 f (xn ) − xn f (xn−1 )
xn+1 = xn − f (x )−f (x ) =
.
n
n−1
f (xn ) − f (xn−1 )
xn −xn−1
On peut reprendre la majoration de II 3◦ pour obtenir, pour n ≥ 1 et C = M2 /(2m1 ) constant :
|xn+1 − α| ≤ C|xn − α| · |xn−1 − α|.
On pose alors δn = ln(C|xn − α|), ce qui donne δn+1 ≤ δn + δn−1 . Il est naturel de comparer
δn à la suite de type Fibonacci définie par une égalité dans la récurrence √
précédente. Comme
chacun sait ou ne sait pas, une telle suite vaut Kφn + K 0 /φn , où φ = (1 + 5)/2 est le nombre
d’or. Sachant que δn → −∞, on en déduit qu’elle est minorée par Kφn avec K < 0, puis que
n
|xn − α| ≤ eKφ /C.
On dit que l’on a une méthode d’ordre φ : à chaque itération, le nombre de décimales exactes
est asymptotiquement multiplié par φ : c’est une convergence moins rapide que la méthode de
Newton, mais beaucoup plus que les autres méthodes à un pas.
Référence : Michelle Schatzmann, Analyse numérique partie 4, Dunod.
6
Téléchargement