Sunteți pe pagina 1din 7

3

Mthodes de rsolution de lquation f (x) = 0

{rvisions} : dveloppements limits, suites.


Dans tout ce chapitre, on se propose de rsoudre lquation f (x) = 0, o f est une fonction
satisfant les deux hypothses suivantes :
(H0) La fonction f : [a, b] R est continue ;
(H1) Lquation f (x) = 0 nadmet quune seule racine note x
, qui est dans lintervalle ]a, b[.
Le point de dpart consiste supposer quon a de plus f (a)f (b) < 0, quitte modifier lintervalle
[a, b] pour sy ramener. Attention, ceci nest pas toujours possible comme le montre lexemple ultrasimple f (x) = x2 , qui a bien une unique racine x
= 0.

3.1

Mthode de dichotomie

On va ici construire une suite (xn ) approchant la racine x


par itrations. Pour cela, on se fixe
une prcision  > 0 (petite) avec laquelle on souhaite localiser x
et on ne sarrtera que lorsque cette
prcision sera atteinte.
{initialisation} : on dfinit x0 = (a + b)/2, le milieu du segment [a, b]. Si f (a)f (x0 ) < 0, alors la
racine se trouve dans lintervalle ]a, x0 [ et on pose alors a1 = a, b1 = x0 ; si f (a)f (x0 ) > 0, alors
la racine se trouve dans lintervalle ]x0 , b[ et on pose alors a1 = x0 , b1 = b ; si enfin f (a)f (x0 ) = 0,
cest qualors x0 = x
et on peut sarrter.
Dans tous les cas, on vient donc de localiser la racine dans un intervalle [a1 , b1 ], de longueur au
plus `/2. On va donc poursuivre cette produre pour amliorer encore.
{itration} : on suppose que lon a construit lintervalle [an , bn ]. On pose xn = (an + bn )/2 et
on traite les trois cas possible : si f (an )f (xn ) < 0, alors on pose an+1 = an , bn+1 = xn ; si
f (an )f (xn ) > 0, on pose an+1 = xn , bn+1 = bn ; si f (an )f (xn ) = 0, cest qualors x
= xn et on
sarrte.
A la n-ime tape on a donc construit un intervalle de largeur au plus `/2n contenant la racine.
Elle est donc assez bien localise lorsque n devient grand.
{fin de la procdure} : on sarrte lorsque `/2n < , ce qui revient choisir n > n0 :=
ln(`/)/ ln(2). Evidemment, si lun des xn coincide avec x
avant n0 , on sarrte.
{Remarque} un gros avantage de la mthode de dichotomie est quelle permet de connaitre le
nombre ditrations ncessaires en fonction de la prcision voulue. Elle est de plus trs simple
programmer. Son inconvnient majeur rside dans lhypothse de dpart f (a)f (b) < 0 qui laisse de
cot toutes les fonctions qui sannulent sans changer de signe.

3.2

Mthodes de point fixe

Les mthodes que nous allons voir ensuite (scante, Newton) fonctionnent toutes sur un principe
commun : rinterprter lquation f (x) = 0 comme un problme de point fixe g(x) = x, pour une
20

certaine fonction g. Cest la libert de choix pour la fonction g qui entrane lexistence de mthodes
diffrentes.
Pour comprendre, supposons que nous souhaitions rsoudre f (x) := x3 3 = 0. En posant
g1 (x) := x3 + x 3, on a bien que f (x) = 0 g1 (x) = x. On peut galement choisir la fonction
g2 (x) := x4 + x 3x qui convient tout fait, condition que lon soit sur un intervalle ne contenant
pas x = 0.
De faon plus gnrale, on peut videmment prendre g(x) = x + f (x), mais comme nous lavons
vu sur lexemple prcdent, on peut choisir
g(x) = x + a(x)f (x) ,
o a est une fonction ne sannulant pas sur lintervalle dtude considr (typiquement, une fonction
continue et strictement positive). Dans ce cas, on va aussi construre une suite (xn ) cense sapprocher
de la racine x
de la faon suivante : on part dun point x0 ]a, b[ arbitraire et on construit par
rcurrence
xn+1 = xn + a(xn )f (xn ) .
On choisira donc la fonction a() de telle sorte que la suite soit bien dfinie, mais aussi pour
sassurer que cette suite soit convergente. Enfin, on pourra rechercher la meilleure fonction a(),
i.e. celle qui permet de construire la suite (xn ) convergeant le plus vite possible vers x
.
On a un premier rsultat qui montre lintrt de lapproche par point fixe :
Thorme 3.1. Si la fonction a est continue, et que la suite (xn ) dfinie ci-dessus converge, alors
xn x
, lunique racine de f (x) = 0 dans ]a, b[.
Nous avons donc maintenant besoin de conditions suffisantes sur la fonction g pour sassurer que
la suite (xn ) converge. Pour cela, plusieurs hypothses peuvent tre utilises, nous allons ici nous
restreindre un cas simple, celui des fonctions contractantes.
Dfinition 3.2. Une fonction g : [a, b] R est dite contractante si il existe 0 < < 1 tel que pour
tout x, y [a, b], on ait
|g(x) g(y)| |x y| .
{exercice} : Vrifier que si g est drivable sur [a, b], avec |g 0 (x)| < 1 sur [a, b], alors g est contractante. Donner trois exemples typiques de fonctions contractantes.
Sous cette hypothse, on a le rsultat suivant :
Thorme 3.3. Soit g : [a, b] [a, b] une fonction contractante. Alors la suite (xn ) dfinie par
x0 [a, b], xn+1 = g(xn ) converge vers lunique point fixe de g dans [a, b].
Il y a en fait plusieurs rsultats dans ce thorme : dabord que g admet un point fixe, ensuite
quil est unique, et enfin que nimporte quelle suite construite par rcurrence converge vers ce point
fixe.

21

{Preuve} Notons tout dabord que si x [a, b], alors g(x) [a, b] par hypothse. Cela montre
que xn est bien dfinie pour tout n. Pour montrer que la suite (xn ) est convergente, on dmontre
dabord quelle est de Cauchy. Cela rsulte du fait que
|xn+1 xn | |xn xn1 | ,
ce qui entrane par rcurrence que |xn+1 xn | n |x1 x0 |, puis
|xn+p xn |

n
|x1 x0 | .
1

La suite (xn ) est donc convergente, et en passant la limite dans la relation de rcurrence,
puisque g est continue, on obtient x = g(x). On a donc obtenu un point fixe.
Reste dmontrer que ce point fixe est unique. Cela se fait trs simplement par labsurde : si x0
est un autre point fixe, alors
|x x0 | = |g(x) g(x0 )| |x x0 | ,
ce qui aboutit une contradiction, sauf si x0 = x.
n
|x1 x0 | permet dvaluer le nombre ditration ncessaires
{Remarque} Lingalit |
x x|
1
pour avoir une prcision  > 0 donne.

{PSEUDO-CODE : }
Data: g, u0 , .
Result: approx of x
, fixed point of g.
while |xn+1 xn |  do
xn+1 = g(xn );
end
return xn+1 ;

3.3

Rapidit de convergence

Avant daller plus loin et de voir des mthodes spcifiques, donnons maintenant quelques outils
permettant de mesurer rapidit avec laquelle nos suites vont converger vers le point fixe.
On dfini par en = xn x
lerreur de notre approximation.
Dfinition 3.4. On dit que la mthode dfinie par xn+1 = g(xn ) est dordre p > 0 si
lim

|en+1 |
= ` > 0.
|en |p

Evidemment, plus le nombre p est grand, plus rapide est la convergence. Quand p = 1 on parle
de convergence linaire et quand p = 2 on parle de convergence quadratique. Le rsultat suivant
justifie cette ide :
22

{exercice} : Dmontrer que si un est une suite positive telle que u0 > 0 et un+1 = `(un )p avec
` > 0, alors il existe une constante c > 0 telle que
n

un = c(`u0 )p .
En dduire que si u0 < 1/`, alors la suite converge vers zro dautant plus vite que p est grand.
En utilisant le fait que g(
x) = x
et que g(xn ) = xn+1 , on voit facilement que
g 0 (
x) = lim

et donc

xn+1 x

g(xn ) x

= lim
,
n
xn x

xn x

en+1
= g 0 (
x) .
n en
lim

On a donc tout intrt choisir une fonction g telle que g 0 (


x) = 0 de sorte avoir une convergence
meilleure que linaire. Cest prcisment ce que nous allons faire dans la mthode suivante.
{remarque} : la condtion g 0 (
x) = 0 nimplique pas ncessairement que lon ait une mthode dordre
2. En effet, lordre pourrait tre intermdiaire entre 1 et 2 (cf. plus loin la mthode de la scante
par exemple).

3.4

Mthode de Newton

Afin de sassurer que g 0 (


x) = 0, on peut procder de la faon suivante : puisque
g 0 (x) = 1 + a0 (x)f (x) + a(x)f 0 (x) ,
on va chercher avoir a(
x) = 1/f 0 (
x). Mais comme on ne connait pas x
a priori, on va carrment
0
supposer que a(x) = 1/f (x) pour tout x de [a, b], condition bien entendu que f 0 ne sannule
pas dans lintervalle considr.
On va donc ajouter quelques hypothses supplmentaires (H0) et (H1) :
(N0) on suppose f est de classe C2 sur [a, b] ;
(N1) on suppose que f 0 et f 00 ne sannulent pas sur [a, b] ;
Ensuite on pose
g(x) := x

f (x)
,
f 0 (x)

et bien entendu xn+1 = g(xn ), avec comme initialisation : x0 = b si f 0 f 00 > 0 dans [a, b], x0 = a
dans le cas contraire).
Thorme 3.5. La suite (xn ) converge vers lunique racine x
de f (x) = 0 dans [a, b].

23

{Preuve} : Nous allons supposer que f 0 > 0 et f 00 < 0 sur [a, b], les autres cas se traitant de faon
similaire. On a donc x0 = a x
.
Supposons que xn x
, alors comme f 0 > 0, la fonction f est croissante et donc f (xn ) f (
x) = 0.
Donc dune part
f (xn )
xn+1 = xn 0
xn ,
f (xn )
ce qui implique que la suite xn est croissante. Dautre part, xn+1 x
= g(xn ) x
= g 0 ()(xn x
)
0
00
0
2
0
pour un [xn , x
]. Or g (x) = f (x)f (x)/(f (x)) donc g () > 0 ; ce qui entrane xn+1 x
0:
la proprit dtre majore par x
se transmet au rang (n + 1).
Conclusion : la suite (xn ) est croissante, majore par x
, donc elle est convergente. Et comme sa
limite ne peut tre que x
, on obtient bien le rsultat.

{INTERPRETATION} : Lide qui est cache derrire la mthode de Newton est que lon est
en train dapprocher f par une droite, tout simplement. En effet, partir du point x0 , si on fait le
dveloppement de Taylor dordre 1 on obtient
f (x) = f (x0 ) + (x x0 )f 0 (x0 ) + o(1) ,
o o(1) est un terme qui tend vers zro quand x x0 tend vers zro. Ainsi, pour rsoudre f (x) = 0
on peut dans un premier temps dterminer x1 de la faon suivante :
f (x0 ) + (x x1 )f 0 (x0 ) = 0 x1 = x0

f (x0 )
.
f 0 (x0 )

Puis, itrativement on construit une suite (xn ) par le mme procd, et on retrouve bien la fonction
g(x) que lon a utilis ci-dessus.

{ORDRE DE LA METHODE} : On va dmontrer un thorme un peu plus fort, mais ncessitant plus dhypothses.
Thorme 3.6. Soit f de classe C 2 sur [a, b], et on suppose de plus que f 0 ne sannule pas sur
[a, b]. Si x0 est pris assez proche de la racine x
, alors la mthode de Newton est dordre 2.
{Preuve} on utilise un dveloppement de Taylor au voisinage de lapproximation xn :
0 = f (
x) = f (xn ) + (
x xn )f 0 (xn ) +

(
x xn )2 00
f (n ) ,
2

o n [xn , x
] (ou [
x, xn ]). Cela entrane
(xn x
)

f (xn )
(xn x
)2 f 00 (n )
=
f 0 (xn )
2
f 0 (xn )

do, en utilisant la dfinition de en = xn x


:
|en+1 | =

|en |2 |f 00 (n )|
.
2 |f 0 (xn )|
24

On pose m := min |f 0 (x)| > 0 et M := max |f 00 (x)| > 0, tous deux pris sur [a, b], et = (M/2m).
Alors |en+1 | |en |2 ce qui donne par rcurrence :
2n
|en | |e0 |
.
Ainsi on voit que si |e0 | = |x0 x
| < 1/, alors la suite des erreurs en tend vers zero (i.e. , la suite
converge vers la racine x
) et de plus, cela implique :
|en+1 |
|f 00 (
x)|

`
:=
,
|en |2
2|f 0 (
x)|

la mthode est bien dordre 2 .

{remarque} : la mthode de Newton tant dordre 2 condition dtre assez proche de la racine
toutefois, lorsquelle converge, elle le fait trs rapidement. Mais elle ncessite donc davoir assez bien
localis le zro recherch dune part, et dautre part elle requiert le calcul de f 0 qui peuvent tre
deux inconvnients de taille dans certains cas.

{exercice} : Mettre en place lalgorithme de Babylone pour trouver une racine carre. On utilisera
la fonction f (x) := x2 a, o a > 0 est un rel dont on veut calculer la racine carre positive.

3.5

Mthode de la scante

Un des inconvnients de la mthode de Newton est davoir calculer f 0 . On peut donc chercher
contourner cette difficult la remplaant par une diffrence finie :
f 0 (x) '

f (x + h) f (x)
, pour h petit .
h

A partir de cette ide, on va modifier la mthode de Newton et crire la suite rcurrente sous la
forme :
xn xn1
xn+1 = xn
f (xn ) .
f (xn ) f (xn1 )
Lavantage de cette mthode est donc quelle vite le calcul de f 0 , son inconvnient est quelle
est moins bonne, dans le sens o son ordre de convergence est compris strictement entre 1 et 2.
En fait, on dmontre que son ordre de convergence est exactement le nombre dor, ' 1, 618.
Nanmoins, sa mise en place est trs rapide pour des fonctions dont on ne connait pas f 0
explicitement, contrairement la mthode de Newton.

{ORDRE DE LA METHODE} : nous allons justifier rapidement le rsultat sur lordre de


convergence pour la mthode de la scante, puisquil fait apparatre le mystrieux nombre dor, .
{Elments de Preuve} On procde comme pour la mthode de Newton, avec une formule de
Taylor. En rcrivant les termes, on arrive cette fois-ci
|en+1 | '

1 |f 00 (n )|
|en | |en1 | .
2 |f 0 (xn )|
25

En prenant le logarithme, on est donc amen tudier la suite rcurrente dordre deux zn+1 =
zn + zn1 , dont les solutions sont relies lquation z 2 = z + 1. Cest ici quapparat le nombre
dor, en tant que racine de cette quation, qui donne donc au final
|en+1 |
`.
|en |

3.6

(3.1)

Remarques finales

Ce chapitre nest quune introduction la rsolution dquations et la recherche de points fixes,


qui sont des problmes assez vastes. Nanmoins , les mthodes lmentaires que nous avons vues
sont dj performantes. Voici plusieurs remarques complmentaires :
(i ) Il existe de nombreuses autres mthodes pour trouver numriquement les racines de f (x) = 0,
mais la plupart procdent des principes vus plus haut (regula falsi, mthode de Muller, de
Brent etc.), chacun ayant ses points forts et ses points faibles.
(ii ) Il existe aussi des algorithmes spcifiques, adapts aux polynomes (mthodes de Laguerre,
de Ruffini etc.). Evidemment, la mthode de Newton fonctionne trs bien dans ce contexte
puisquil est immdiat de calculer la drive dun polynme.
(iii ) Notons galement que la ncessit de rsoudre f (x) = 0 provient aussi dune recherche de
points critiques. En effet, si on cherche minimiser ou maximiser une fonction F , la premire
tape consiste rsoudre f (x) := F 0 (x) = 0. Nous nallons pas aborder le sujet ici, mais il
existe tout un tas de mthodes adaptes une telle situation (plus grande pente, gradient
conjugu ...), qui tirent partie des proprits de la primitive F .
(iv ) Enfin, savoir certaines mthodes se gnralisent plus ou moins facilement au cas dune
fonction de plusieurs variables, pour rsoudre lquation f (x1 , x2 , . . . , xN ) = 0 ou encore pour
rechercher le minimum de F (x1 , x2 , . . . , xN ) = 0.

26

S-ar putea să vă placă și