Vous êtes sur la page 1sur 78

Elments de calcul numrique

Michael Tolley
Fvrier 2011

Chapitre 1
Rsolution dune quation F (x) = 0
1.1

Prliminaires

Dans ce chapitre nous tudierons quelques mthodes de rsolution dquations de la forme


F (x) = 0. Dune manire gnrale, x est un rel 1 et F (.) une fonction relle.
On connat des formules permettant de calculer explicitement les racines de tout polynme
de degr < 5 mais de telles formules nexistent pas pour les polynmes de degr suprieur
4 ni, en gnral, pour les quations transcendantes.
Lquation x 0.2 sin(x) 0.5 = 0 (cet exemple est emprunt Dion et Gaudet [1]) admet
une racine relle au voisinage de 0.615.
Comme on ne dispose pas dune formule qui permet de calculer cette racine explicitement,
pour la connatre il faudra procder numriquement.
Une bonne pratique, si lon dispose dun ordinateur et dun logiciel de calcul numrique
avec des moyens graphiques (cest le cas de Matlab et dOctave 2 ), est de commencer par
faire un graphe de la fonction. On peut, videmment, aussi tudier cette fonction par les
moyens analytiques classiques pour localiser son (ses) zro(s) ventuel(s).
Voici un programme crit en Matlab pour le cas de la fonction ci-dessus :
x = -1 :0.001 :1;
f = x - 0.2*sin(x) - 0.5;
plot(x,f)
grid on
zoom on

%
%
%
%
%

On
Le
On
On
On

construit un vecteur x 2001 composantes


vecteur f contient les 2001 images de x
reprsente f en fonction de x
place une grille sur le graphe
active le zoom

La fonction zoom permet de cliquer sur le graphe de manire faire un agrandissement,


on peut ainsi aller voir le(s) zro(s) de plus prs.
Les mthodes qui permettent de calculer des valeurs approches des zros dune fonction
sont toutes bases sur la notion ditration. Elles engendrent une suite de valeurs qui,
quand tout va bien, converge vers le zro cherch.
1. Nous verrons que certaines mthodes restent valables si x est complexe.
2. Octave est un logiciel libre, quasi-clone de Matlab

Les lments de la suite sont appels approximations successives.


Exemple 1
Pour rsoudre lquation F (x) = x 0.2 sin(x) 0.5 = 0 on peut procder comme suit :
On remplace lquation donne par une quation quivalente en crivant par exemple,
x = g(x), avec g(x) = 0.2 sin(x) + 0.5 (g : R R, on travaille avec des rels).

On se donne alors une valeur x0 proche de la racine cherche et on calcule les approximations successives engendres par la rcurrence xn+1 = g(xn ), n = 0, 1, 2, . . .
Dans le cas prsent, voici ce quon obtient pour les 20 premiers termes de la suite en
prenant x0 = 0.6
0.61292849467901
0.61505306701027
0.61540037303958
0.61545709802029
0.61546636150471
0.61546787424461
0.61546812127620
0.61546816161663
0.61546816820424
0.61546816928001
0.61546816945568
0.61546816948437
0.61546816948905
0.61546816948982
0.61546816948994
0.61546816948996
0.61546816948996
0.61546816948997
0.61546816948997
0.61546816948997
Ces rsultats ont t obtenus laide du programme que voici 3 :
x0 = 0.6;
for n = 1:20
x(n) = 0.2*sin(x0) + 0.5;
x0 = x(n);
end
format long
x

3. Il est instructif dxcuter successivement le programme prcdent et celui-ci.

Un programme quivalent au prcdent serait :


x(1) = 0.6;
for n = 1:20
x(n+1) = 0.2*sin(x(n)) + 0.5;
end
format long
x
Dans le cas de cet exemple, nous obtenons une suite de valeurs qui semble converger,
dailleurs : F (0.61546816948997) = 3.774758283725532 1015
Voyons comment caractriser :
la vitesse de convergence dune suite,
la prcision ajoute par une itration,
la notion de nombre de chiffres prcis ou de chiffres exacts.
Soit x0 , x1 , x2 , x3 , x4 ... une suite de rels qui converge vers le rel r.
Nous crirons {xn } r ou x r
Dfinitions
r xn+1
et si K1 (x) (1, 1)\{0}
n r xn
on dit que xn converge linairement vers r.
r xn+1
2. Si K1 (x) = 0 et si K2 (x) = lim
6= 0
n (r xn )2

1. Si K1 (x) = lim

on dit que xn converge quadratiquement vers r.


r xn+1
6= 0
3. Si K1 (x) = K2 (x) = 0 et si K3 (x) = lim
n (r xn )3
on dit que xn converge cubiquement vers r.

4. Si K1 (x) = K2 (x) = K3 (x) = = Kp1 (x) = 0 et si Kp (x) = lim

on dit que xn converge vers r la puissance, ou lordre, p.

r xn+1
6= 0
(r xn )p

K1 , K2 , K3 , . . . , Kp caractrisent la vitesse de convergence de la suite {xn }.

Dans le cas de la convergence linaire, plus K1 (x) est proche de zro, plus la convergence
est rapide. Il en va de mme pour Kp (x) dans le cas de la convergence dordre p.

Thorme
Soit {xn } r

1. Si la convergence est linaire, alors N (xn+1 , r) N (xn , r) log10 |K1 (x)|.

2. Si la convergence est quadratique, alors N (xn+1 , r) 2.N (xn , r) log10 |r.K2 (x)|.
3

3. Si la convergence est cubique, alors N (xn+1 , r) 3.N (xn , r) log10 |r2 .K3 (x)|.

4. Si la convergence est dordre p alors N (xn+1 , r) p.N (xn , r) log10 |rp1 .Kp (x)|.

Dmonstration
Il suffit dappliquer la dfinition de N (x, r) pour obtenir
la prcision ajoute par une itration :
n+1
n
N (xn+1 , r) N (xn , r) = log10 | rxrn+1 | + log10 | rx
| = log10 | rx
| log10 |K1 (x)|
r
rxn

On a aussi :

rxn+1
n
| = log10 |r (rx
N (xn+1 , r)2N (xn , r) = log10 | rxrn+1 |+2log10 | rx
2 | log10 |rK2 (x)|
r
n)

N (xn+1 , r) 3N (xn , r) = log10 |r2 K3 (x)|

et ainsi de suite...

Ce thorme peut sinterprter de la faon suivante :


Si la convergence est linaire, on gagne la mme quantit de prcision chaque
itration. Si elle est quadratique, on gagne le double de prcision chaque itration,
si elle est cubique, on en gagne le triple , etc.
Exemple 2
Les suites {xn = 1 + 0.8n } et {yn = 1 + 0.01n } convergent linairement vers r = 1. Leurs
vitesses de convergence sont caractrises par K1 (x) = 0.8 et K1 (y) = 0.01.
Comme K1 (y) K1 (x), y converge plus rapidement que x.

De plus, puisque N (x, r) = log10 |0.8| = 0.096910013... il faut peu prs 10 itrations
pour gagner un chiffre en prcision en ce qui concerne la suite x.
Par contre, avec N (x, r) = log10 |0.01| = 2 on gagne deux chiffres en prcision chaque
itration de la suite y.
Ceci se vrifie aisment laide du programme :
for n = 1:40
iter(n) = n;
x(n) = 1 + 0.80^n;
y(n) = 1 + 0.01^n
end
format long
[iter x y]
qui produit les rsultats suivants 4 :
4. Le format daffichage de la premire colonne a t modifi.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

1.80000000000000
1.64000000000000
1.51200000000000
1.40960000000000
1.32768000000000
1.26214400000000
1.20971520000000
1.16777216000000
1.13421772800000
1.10737418240000
1.08589934592000
1.06871947673600
1.05497558138880
1.04398046511104
1.03518437208883
1.02814749767107
1.02251799813685
1.01801439850948
1.01441151880759
1.01152921504607
1.00922337203685
1.00737869762948
1.00590295810359
1.00472236648287
1.00377789318630
1.00302231454904
1.00241785163923
1.00193428131138
1.00154742504911
1.00123794003929
1.00099035203143
1.00079228162514
1.00063382530011
1.00050706024009
1.00040564819207
1.00032451855366
1.00025961484293
1.00020769187434
1.00016615349947
1.00013292279958

1.01000000000000
1.00010000000000
1.00000100000000
1.00000001000000
1.00000000010000
1.00000000000100
1.00000000000001
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000
1.00000000000000

Les deux suites convergent linairement, mais, on ajoute 2/0.096910013... soit environ
20.63... fois plus de chiffres prcis par itration de {yn } que par itration de {xn }.

Dans ce qui prcde les valeurs de K1 supposent la connaissance a priori de la limite r


que lon cherche. Il sagit donc de valeurs thoriques.
5

Dans la pratique, pour avoir une ide de la vitesse de convergence dun calcul itratif, on
utilisera une mesure approximative K1 (x, n) de K1 (x) dont le calcul ne ncessite pas la
connaissance de la valeur exacte r.
Thorme
Soit xn une suite de rels qui converge linairement vers r, posons :
xn+2 xn+1
nous avons K1 (x) = lim K1 (x, n) K1 (x, n)
K1 (x, n) =
= K1 (x)
n
(xn+1 xn )
Dmonstration

xn+2 r
1
K1 (x) 1
xn+2 xn+1
xn+1 r
=
lim K1 (x, n) = lim
= K1 (x),
= lim
x
r
n
n
n xn+1 xn
n 1
1 K11(x)
xn+1 r

puisque K1 (x) 6= 0 et K1 (x) 6= 1.


xn+2 xn+1
K1 (x, n) =
servira dindicateur de convergence effective lors des calculs.
(xn+1 xn )
Exemple 3

Soient trois approximations conscutives dune suite qui converge linairement vers le
nombre inconnu r :
x1 = 3.074088000
x2 = 3.031116960
x3 = 3.013069123
On a K1 (x, 1)
= 0.4200000047 do lon tire :
N (xn+1 , r) N (xn , r)
= log10 K1 (x, 1)
= log10 K1 (x)
= log10 0.420...
= 0.377

On ajoute donc environ 0.377 chiffre dcimal prcis par itration et il faut 2.65 itrations
pour gagner une dcimale en prcision 5 . Pour les trois valeurs approches de r les deux
premiers chiffres sont identiques 3.0... si on admet quils sont exacts il faudra environ
8 2.65 itrations pour obtenir 10 chiffres exacts en tout.
Ce diagnostic est plausible...
Mais :
ce nest pas parce que les deux premiers chiffres sont les mmes pour les trois valeurs
successives quils correspondent aux deux premiers chiffres de r. Une stabilit apparente
des premiers chiffres peut simplement tre la traduction dune convergence trop lente pour
affecter et corriger en seulement deux itrations un chiffre incorrect en deuxime position.
De plus, rien ne garantit que le chiffre en premire position soit exact, dailleurs, le quatrime terme de la suite est : x4 = 2.991254806.
Il faut donc faire preuve dune grande prudence dans lutilisation des vitesses de convergence approches et ne pas se contenter dune seule valeur estime partir de trois termes
successifs de la suite tudie.
5. On ne peut videmment pas fractionner un nombre ditrations... !

Exemple 4
La srie de Leibnitz fournit des approximations de : = 4 [1 13 + 15 71 + 19 . . . ]

Soit Sn la somme des n premiers termes de cette srie, on obtient les valeurs suivantes de
quelques sommes partielles :
n
n
n
n
n
n

=
=
=
=
=
=

1
2
3
4
5
6

4.00000000000000
2.66666666666667
3.46666666666667
2.89523809523810
3.33968253968254
2.97604617604618

n = 1000000

n
n
n
n
n
n

=
=
=
=
=
=

7
8
9
10
1000
100000

3.28373848373848
3.01707181707182
3.25236593471888
3.04183961892940
3.14059265383979
3.14158265358972

3.14159165358977

On constate que la srie de Leibnitz converge lentement puisquen sommant un million


de termes on nobtient que six chiffres exacts.
La convergence est linaire. K1 (x, 8)
= 0.89, mais, comme nous lavons signal ci-dessus,
K1 (x, n) peut varier en fonction de n.
A titre dexemple on a :
3.05840276592733 3.23231580940559
K1 (x, 10)
= 0.913043
=
3.23231580940559 3.04183961892940
et
3.14001037609913 3.14317743864861
K1 (x, 630)
= 0.99841646872447.
=
3.14317743864861 3.14000535300230
Ainsi, si on somme 630 termes on obtient avec trois chiffres exacts (3.14) et daprs
la valeur de K1 (x, 630) il faudrait encore ajouter 1/( log10 0.99841646872447)
= 1453
termes supplmentaires pour obtenir un quatrime chiffre exact !
En pratique, on constate que pour avoir deux approximations successives qui prsentent
toutes deux quatre chiffres exacts il faut sommer un total de 2454 termes de la srie :
S2453 = 3.14200031765765
S2454 = 3.14118515564420
S2455 = 3.14199998554846
Notre prvision tait donc trop optimiste. On peut dailleurs constater que plus on prend
de termes de la srie, plus il en faudra pour gagner un chiffre prcis. Ainsi, K1 (x, 100000) =
0.99998999997138 ce qui suggre que pour obtenir un chiffre prcis en plus il faut prendre
1/ log10 (0.99998999997138) = 230.256, 6989... termes supplmentaires de la srie de
Leibnitz. Alors que K1 (x, 1000000) = 0.99999899991060 ce qui impliquerait quil faut
plus de 2 millions de termes en plus pour gagner un chiffre puisque 1/ log10 (0.0.99999899991060) =
2.302.378, 1078....
Pour se faire une ide de la dpendance de K1 (x, n) en fonction de n, pour la srie de
Leibnitz, nous avons reprsent cette fonction la figure 1.1.
7

Srie de Leibnitz Vitesse de convergence estime en fonction de n


0.6

0.65

0.7

K1(x, n)

0.75

0.8

0.85

0.9

0.95

0.5

1.5

2.5

3.5

log10 n

Figure 1.1 Evolution de lestimateur de la vitesse de convergence en fonction du nombre


de termes conservs dans la somme partielle qui dfinit la srie de leibnitz.
On constate que la valeur asymptotique K1 (x, n) tend vers 1 et quelle diffre fortement
des valeurs obtenues pour n "petit" . Ceci confirme quil faut tre prudent lorsquon essaye
destimer K1 (x) partir de K1 (x, n) et tient au fait que K1 (x) = lim K1 (x, n).
n

Une autre illustration de linfluence de n sur lestimateur K1 (x, n) de la vitesse de convergence est donne la figure 1.2 o lon a reprsent le nombre de termes, quen principe,
il faudrait ajouter la somme partielle Sn pour gagner un chiffre prcis en plus n donn.
Les rsultats prcdents ont t obtenus laide de la fonction et du programme suivants :
% Calcul dune valeur approche de par sommation
% des N premiers termes de la srie de Leibnitz
%
function piapp=apppi(N)
piapp=0; fac=1;
for n=1:N
piapp=piapp+fac/(2*n-1);
fac=-fac;
end
piapp=4*piapp;

2.5

x 10

Srie de Leibnitz Nombre de termes ajouter pour gagner un chiffre

Nombre de termes

1.5

0.5

1000

2000

3000

4000

5000

6000

7000

8000

9000

10000

Figure 1.2 Evolution du nombre de termes quil faudrait ajouter la somme partielle
qui dfinit la srie de Leibnitz pour obtenir un chiffre prcis supplmentaire, en fonction
du nombre de termes n de cette somme. (Notez lchelle des ordonnes : 104 ).
% Programme permettant de raliser les figure 2.1 et 2.2 du chapitre 2
clc;clear
Nmax=10000;
x=1:Nmax;
log10x=log10(x);
piapp=0; fac=1;
for n=1:Nmax+2
piapp=piapp+fac/(2*n-1);
fac=-fac;
Terme(n)=piapp;
end
Terme=4*Terme;
for k=1:Nmax
t1=Terme(k);
t2=Terme(k+1);
t3=Terme(k+2);
K1(k)=(t3-t2)/(t2-t1);
end
9

Ntermes=-1./log10(abs(K1));
figure(1)
plot(log10x,K1,LineWidth,1.5)
xlabel(log_1_0 \it n,FontSize,14)
ylabel(K_1(x,\it n),FontSize,14)
titre1=Srie de Leibnitz - Vitesse de convergence en fonction de \it n;
title(titre1,FontSize,14)
grid on
figure(2)
plot(x,Ntermes,LineWidth,1.5)
xlabel(\it n,FontSize,14)
ylabel(Nombre de termes,FontSize,14)
titre2=Srie de Leibnitz - Nombre de termes ajouter pour gagner un chiffre;
title(titre2,FontSize,14)
grid on

1.2

Acclration de la convergence

Il arrive frquemment quune suite convergeant linairement soit de peu dintrt pratique
en raison dune convergence trop lente. Cest le cas de la suite des sommes partielles tires
de la srie de Leibnitz.
Pour amliorer la convergence de la suite on peut la transformer en une nouvelle suite
au moyen dun algorithme dacclration de convergence. Dans certains cas les effets
dacclration sont trs spectaculaires.
Algorithme dAitken-Shanks
Soit r le rel vers lequel la suite x1 , x2 , x3 , . . . converge linairement.
r xn+1 xn+2 xn+1
Pour n suffisamment grand, on a :
=
r xn
xn+1 xn
do lon tire une nouvelle approximation de r : r
= xn+2

(xn+2 xn+1 )2
(xn+2 2xn+1 + xn )

Cette formule, connue sous le nom de formule dAitken-Shanks associe la suite {xn } une
nouvelle suite {yn }
yn = xn+2

(xn+2 xn+1 )2
(xn+2 2xn+1 + xn )

(1.1)

La nouvelle suite y converge gnralement plus vite que la suite dorigine.


Lapplication rpte de la formule dAitken-Shanks aux neuf premiers termes de la suite
considre dans lexemple 4 fournit la premire colonne du tableau ci-dessous. La deuxime
colonne de ce tableau sobtient en faisant oprer le mme algorithme sur la premire
colonne et ainsi de suite. La valeur qui figure dans la dernire colonne est une meilleure
approximation de que celle obtenue en sommant un million de termes de la srie de
Leibnitz !
10

3.16666666666667
3.13333333333334
3.14523809523810
3.13968253968254
3.14271284271284
3.14088134088134
3.14207181707182

1.3
1.3.1

3.14210526315790
3.14145021645022
3.14164332399627 3.14159935731901
3.14157129020143 3.14159086039588
3.14160284160284 3.14159323124376 3.14159271403378

Mthode de dichotomie ( bissection )


Principe de la mthode de dichotomie

La mthode de dichotomie, base sur le thorme de la valeur intermdiaire pour les


fonctions continues est, en quelque sorte, ce nous pourrions appeler une mthode de calcul
par ttonnements organiss.
Si la fonction f (x) est continue sur lintervalle [a, b] et telle que f (a).f (b) < 0 il y a au
moins une racine dans (a, b).
La moiti de lintervalle qui contient la racine sert de nouvel intervalle pour litration
suivante.
La mthode de dichotomie gnre donc une suite dintervalles embots {[an , bn ]} telle que
pour tout n : f (an ).f (bn ) < 0.

1.3.2

Algorithme de la mthode de dichotomie

a) [a0 , b0 ] = [a, b]
b) [an , bn ] tant connu, on pose w = (an + bn )/2 et on teste le signe de f (an ).f (w).
c) Si ce signe est positif, le changement de signe de f (x) a lieu dans la deuxime moiti
de lintervalle et on pose [an+1 , bn+1 ] = [w, bn ]. Sil est ngatif, le changement de signe a
lieu dans la premire moiti de lintervalle et on pose [an+1 , bn+1 ] = [an , w]. Si le produit
f (an ).f (w) est nul, on a trouv le zro cherch (ou un autre !).
Retour lexemple 1
Proposons nous de calculer une approximation du zro de f (x) = x 0.2sin(x) 0.5 qui
se trouve dans lintervalle [a, b] [0, 1].
Voici les rsultats obtenus pour les 7 premires approximations (itrations) :

11

an
0.0
0.5
0.5
0.5
0.5625
0.59375
0.609375
0.609375

bn
1.0
1.0
0.75
0.625
0.625
0.625
0.625
0.6171875

f (an )

f (bn )
+
+
+
+
+
+
+
+

w
0.5
0.75
0.625
0.5625
0.59375
0.609375
0.6171875

f (w)

+
+

NB : pour obtenir dix chiffres exacts il faut faire trente quatre itrations.
Comme la mthode de dichotomie gnre une suite dintervalles embots, plutt quune
suite de rels, notre dfinition des Ki (x) nest pas valable. Nous admettrons toutefois que
la convergence est linaire et que K1 (x) = 0.5.

1.3.3

Evaluation du cot de la mthode de dichotomie

Le cot dune mthode numrique est le nombre doprations, dvaluations de fonctions,


dassignations et de comparaisons effectuer pour mettre la mthode en oeuvre. Chaque
itration a un cot et le cot total dpend videmment du nombre ditrations effectuer.
Il sagit donc dune notion relativement thorique. En effet, le nombre ditrations
effectuer pour atteindre une prcisison fixe peut varier fortement dune mthode lautre.
De plus, pour rsoudre une quation donne on est conduit valuer une ou plusieurs
fonctions chaque itration et ces fonctions dpendent de la mthode de rsolution choisie.
Il y a mme des cas o un algorithme donn peut tre mis en oeuvre en faisant appel
diffrentes fonctions 6 . Ce nest donc qu titre indicatif que lon valuera le cot dune
mthode de rsolution dune quation non linaire une inconnue.
En ce qui concerne le cot de la mthode de dichotomie, il se monte :
une assignation, une addition, une division, une valuation de fonction et un test de signe
par itration.

1.3.4

Avantages de la mthode de dichotomie

Les principaux avantages de la mthode de dichotomie sont :


a) la convergence certaine de lalgorithme vers la racine cherche si f (x) est continue sur
lintervalle [a, b] dans lequel on a russi isoler une racine unique ;
b) la possibilt de dterminer a priori le nombre ditrations effectuer pour obtenir la
racine voulue avec une prcision donne.
En effet, on part dun intervalle connu [a, b] et on gnre des intervalles dont la longueur
vaut la moiti de celle de lintervalle prcdent. Ainsi, aprs n itrations, lintervalle qui
(b a)
encadre la racine cherche est de longueur
et si lon veut que lerreur absolue
2n
6. Cest le cas de la mthode ditration, ou du point fixe.

12

commise sur le rsultat soit infrieure une quantit prdfinie, il suffira de faire n
ln ba

.
itrations avec n >
ln 2

1.3.5

Inconvnients de la mthode de dichotomie

Les principaux dsavantages de la mthode de dichotomie sont :


a) les contraintes imposes par les hypothses de dpart dont, principalement, le fait quil
faille dterminer un intervalle qui encadre une seule racine et dans lequel la fonction
tudie change de signe 7 .
b) la relative lenteur de la convergence. En effet, la convergence est linaire et sa vitesse
est caractrise par K1 (x) = 0.5.

1.4

Mthode regula falsi ( fausse position )

On peut substituer la mthode de dichotomie une mthode plus efficace qui en dcoule
directement. Lide est de tenir compte des valeurs de la fonction aux extrmits de
lintervalle de travail et non seulement des signes quelle y prend.
Supposons que les conditions dapplication de la mthode de dichotomie soient remplies.
Au lieu de diviser lintervalle de travail en deux parties gales, on procde diffremment.
Sur lintervalle en question on assimile le graphe de f (x) la droite qui joint les points
(a, f (a)) et (b, f (b)). Une approximation de la racine cherche est donc labscisse du point
o cette droite coupe laxe des x. On prend pour w labscisse de ce point 8 et il est facile
ba
ba
de montrer que w = b f (b)
= a f (a)
.
f (b) f (a)
f (b) f (a)

Le nouvel intervalle de travail sera soit [a, w] soit [w, b] selon les signes pris par f (a), f (b)
et f (w).

1.5
1.5.1

Mthode de la scante
Principe de la mthode de la scante

La mthode de la scante est apparente la mthode Regula Falsi. Ici aussi on assimile le
graphe de f (x) une droite. Toutefois, on se libre des contraintes des deux mthodes prcdentes en nexigeant plus la dtermination dun intervalle qui encadre la racine cherche
et sur lequel f (x) change de signe.
Soient x0 et x1 deux approximations de la racine r dune quation f (x) = 0. Si, dans un
voisinage de lintervalle [x0 , x1 ] on remplace le graphe de f (x) par une droite qui joint les
points (x0 , f (x0 )) et (x1 , f (x1 )) on peut esprer trouver une nouvelle approximation de la
7. Ce qui exclut que cette mthode puisse tre applique aux racines de multiplicit paire.
8. Labscisse w est une "fausse position" du zro cherch.

13

racine cherche en assimilant celle-ci au point x2 o la droite coupe laxe des x, comme
on le fait dans la mthode de la fausse position 9 .
Il est facile, partir de lquation de la droite, dobtenir x2 . On a :
x1 x0
x2 = x1 f (x1 )
f (x1 ) f (x0 )
Ensuite, partant de x1 et x2 , on calcule x3 , etc.

1.5.2

Algorithme de la mthode de la scante

Eu gard ce qui prcde, lalgorithme de la mthode de la scante est le suivant :


a) Fixer x0 et x1
b) Calculer xn+2 = xn+1 f (xn+1 )

xn+1 xn
, pour n = 0, 1, 2, . . .
f (xn+1 ) f (xn )

Nouveau retour lexemple 1


On se propose de rsoudre lquation x 0.2sin(x) 0.5 = 0 par la mthode de la scante
laide du programme rudimentaire, crit en Matlab, qui suit :

% Mthode de la scante
% Rsolution de lquation x - 0.2sin(x) - 0.5 = 0
f=inline(x-0.2*sin(x)-0.5); % Fonction dont on cherche un zro
x(1)=0; x(2)=1;
% Valeurs initiales : 2 prcurseurs de la suite
% Boucle calculant 8 valeurs de la suite : (3), x(4), ... , x(11)
for n=1:8
F=f(x(n+1));
% Pour ne pas valuer 2 fois f(x(n+1)) !
x(n+2)=x(n+1)-F*(x(n+1)-x(n))/(F-f(x(n)));
end
format long
y=f(x);
% Evaluation des images par f de la suite des x
[x y]
% Affichage de la suite et de son image
Les rsultats produits par ce programme sont les suivants :
Warning: Divide by zero.
> In secante_EX1 at 7
ans =
0
1.00000000000000
0.60117411490142

-0.50000000000000
0.33170580303842
-0.01194810966334

9. Dans le cas de la mthode de la scante, x2 peut tre lextrieur de lintervalle x0 et x1 .

14

0.61504043574228
0.61546858886061
0.61546816947759
0.61546816948997
0.61546816948997
NaN
NaN

-0.00035787398859
0.00000035088715
-0.00000000001035
0
0
NaN
NaN

On a onze chiffres exacts 10 aprs 4 itrations seulement. Pour atteindre le mme rsultat,
la mthode Regula Falsi ncessiterait 7 itrations, tandis que la mthode de dichotomie
en demanderait 34 !
Remarques
Le message derreur :
Warning: Divide by zero.
> In secante_EX1 at 7
Indique lutilisateur que le programme effectue une division par zro. Ce message est
un avertissement "Warning" il ne provoque pas linterruption du programme.
La liste des valeurs des itrs et de leurs images comprend des NaN 11 qui indiquent que
x(10), x(11) et leurs images ne sont pas des nombres. Ceci provient du fait, que x(10)
rsulte dune division de zro par zro. Comme x(10) nest pas un nombre, f(x(10)), x(11)
et f(x(11)) nen sont pas non plus puisquils dcoulent de calculs impliquant x(10).

1.5.3

Evaluation du cot de la mthode de la scante

Le cot de la mthode de la scante, par itration, se monte deux assignations, trois soustractions, un produit, une division et deux valuations de fonction. Il convient nanmoins
de se souvenir des prcautions nonces prcdemment la page 12.

1.5.4

Avantages de la mthode de la scante

Les principaux avantages de la mthode de la scante sont :


a) les hyptothses de dpart sont peu contraignantes si la fonction prsente un seul zro
b) la convergence est rapide dans le cas des racines simples, mme si elles sont nombreuses,
pour autant quon puisse trouver de bons prcurseusr x1 et x2 .
10. Dont dix aprs le point dcimal
11. NaN signifie Not a Number

15

1.5.5

Inconvnients de la mthode de la scante

Le principal dsavantage de la mthode de la scante est la lenteur de sa convergence et


son manque de prcision relatif lorsquon a affaire une racine multiple.
Le programme qui suit et les rsultats quil produit illustrent ce dsavantage.
Le programme :
% Mthode de la scante
% Rsolution dune quation dont pi/12 est une racine double
f=inline(16*(sin(x).*cos(x)).^2-4*sin(2*x)+1); % Fonction f
fp=inline(4*sin(x).*cos(x)-1);
% Drive de f
x(1)=pi/11; x(2)=pi/13;
% Valeurs initiales : 2 prcurseurs de la suite
% Boucle calculant 39 valeurs de la suite : (3), x(4), ... , x(41)
for n=1:39
F=f(x(n+1));
x(n+2)=x(n+1)-F*(x(n+1)-x(n))/(F-f(x(n)));
end
format long
y=f(x);
% Evaluation des images par f de la suite des x
z=fp(x);
% Evaluation des images par fp de la suite des x
[x y z]
% Affichage de la suite et de ses images
r=pi/12;
% r=pi/12 est racine double
[r f(r) fp(r)]
% Affichage de pi/12 et de ses images
Les rsulats du programme :
Warning: Divide by zero.
> In secante_EX2_rac_double at 8
ans =
0.28559933214453
0.24166097335306
0.10738687770536
0.24372258791612
0.24540036635754
0.25312044972630
0.25608846004702
0.25834160538625
0.25964036294440
0.26046824301520
0.26097516117979
0.26129005217571
0.26148447169612
0.26160474582933

0.00660670417384
0.00497781836261
0.32918587883926
0.00400178979700
0.00328735955913
0.00091287720551
0.00039394439753
0.00014404624185
0.00005607585010
0.00002129600284
0.00000815994743
0.00000311490341
0.00000119049845
0.00000045472812
16

0.08128163491120
-0.07055365591246
-0.57374722556127
-0.06325970120863
-0.05733549999027
-0.03021385783884
-0.01984803258590
-0.01200192658909
-0.00748838100671
-0.00461475923963
-0.00285656216898
-0.00176490889615
-0.00109109965331
-0.00067433531598

0.26167907884839
0.26172502960872
0.26175343022065
0.26177098392135
0.26178183300694
0.26178853825933
0.26179268238307
0.26179524361093
0.26179682654628
0.26179780485636
0.26179840948386
0.26179878315836
0.26179901411495
0.26179915684805
0.26179924506164
0.26179929949920
0.26179933318719
0.26179935408803
0.26179936667013
0.26179937553076
0.26179937970047
0.26179938506152
0.26179938774205
0.26179938666984
0.26179938666984
NaN
NaN

0.00000017371505
0.00000006635538
0.00000002534653
0.00000000968168
0.00000000369812
0.00000000141257
0.00000000053956
0.00000000020609
0.00000000007872
0.00000000003007
0.00000000001149
0.00000000000439
0.00000000000168
0.00000000000064
0.00000000000024
0.00000000000009
0.00000000000004
0.00000000000001
0.00000000000001
0.00000000000000
0.00000000000000
0.00000000000000
-0.00000000000000
0
0
NaN
NaN

-0.00041679137510
-0.00025759538490
-0.00015920594590
-0.00009839553245
-0.00006081220037
-0.00003758414384
-0.00002322833259
-0.00001435592347
-0.00000887245333
-0.00000548347969
-0.00000338898548
-0.00000209453787
-0.00000129448032
-0.00000080003817
-0.00000049445728
-0.00000030588002
-0.00000018918137
-0.00000011677875
-0.00000007319309
-0.00000004249896
-0.00000002805466
-0.00000000948343
-0.00000000019781
-0.00000000391206
-0.00000000391206
NaN
NaN

-0.00000000000000

ans =
0.26179938779915

La meilleure approximation de la racine est x(37) = 0.26179938774205 avec une erreur


relative denviron 2.1010 . On constate que les rsulats se dgradent pour n > 37 et que
la mthode ne permet pas dobtenir la "pleine prcision", cest--dire dobtenir 14 chiffres
prcis.

1.6

Mthode ditration (ou du point fixe)

Les mthodes de dichotomie et Regula Falsi fournissent une suite dintervalles embots
encadrant la racine cherche de lquation F (x) = 0 que lon veut rsoudre.
La mthode de la scante produit une suite de valeurs senses tendre vers la valeur du zro
cherch et chaque nombre de la suite dpend de deux prcurseurs. On peut schmatiser
son algorithme de la faon suivante :
17

a) Choisir deux valeurs de dpart : x1 et x2


b) Calculer les itrs successifs : xn+2 = g(xn , xn+1 ) pour n = 1, 2, ....

1.6.1

Principe et algorithme de la mthode ditration

Pour rsoudre lquation F (x) = 0, la mthode ditration, aussi appele mthode du


point fixe 12 , procde comme suit :
a) Choisir une valeur de dpart x1
b) Itrer, autant de fois quil faut : xn+1 = g(xn ) pour n = 1, 2, ....
Cette mthode est donc, en principe, plus simple programmer que les mthodes prcdentes. De plus elle ncessite moins doprations par itration.
Le point dlicat est ici de faire un "choix convenable" de la fonction ditration g(.).
En effet, on peut mettre lquation rsoudre F (x) = 0 sous la forme quivalente x = g(x)
dune infinit de manires.
Proposons-nous de calculer le zro proche de 0.6 de lquation x 0.2 sin(x) 0.5 = 0
en la mettant sous la forme vidente : x = 0.2 sin(x) + 0.5. Comme nous lavons vu
prcdemment (cf. page 3), la mthode est efficace et fournit une valeur approche du
zro cherch avec au moins 14 chiffres significatifs exacts : 0.61546816948997 13 .

1.6.2

Interprtation graphique de la mthode ditration

La mthode converge
Si lon fait un graphe de f (x) = 1 x3 /4 on constate que cette expression nesannule que pour une seule valeur relle de x, proche de 1.59, qui vaut dailleurs 3 4 =
1.58740105196819 . . . .
Il est facile dobtenir une approxiamtion de ce zro avec une erreur absolue de lordre
de 105 . Il suffit pour cela dappliquer la mthode du point fixe en choisissant g(x) =
x + f (x) = x + 1 x3 /4 et dxcuter le programme suivant :
x(1)=1.59;
for n=1:50
x(n+1)=x(n) + 1 - x(n)^3/4;
end
x
pour trouver x(51) = 1.587408675995064. Si lon veut une prcision suprieure, il suffit
de rexcuter le programme en augmentant le nombre ditrations faire ou den crire
une variante qui teste lcart entre deux itrs successifs, par exemple :
12. Une autre dnomination est : mthode des approximations successives.
13. Le quinzime chiffre est un 7 mais il rsulte dun arrondi car les chiffres en positions 15 et 16 sont
respectivement 6 et 5, le 17me valant 3 ou 4.

18

x(1)=1.59;
n=1;
f=1;
while abs(f) > 1e-14
f = 1 - x(n)^3/4;
x(n+1)=x(n) + f;
n=n+1;
end
x
length(x)

Aprs 233 itrations, on obtient comme approximation de 3 4 la valeur 1.587401051968204


qui est exacte moins de 5.1015 prs. Si lon part de x1 = 1.59, partir du 244me itr,
les valeurs successives de xn oscillent entre 1.587401051968199 et 1.587401051968200.
Le programme suivant, un peu plus labor que les prcdents, permet dillustrer graphiquement comment fonctionne la mthode du point fixe pour rsoudre notre problme.
Il fournit un diagramme qui saffiche tape par tape grce aux instructions pause quil
contient. Le nombre ditrations a t volontairement limit 10. On constate que la
suite des xn oscille autour du zro cherch dont labscisse est celle du point pour lequel
on a x = g(x) 14 , ce qui se traduit part un graphe en forme de "spirale rectangulaire"
senroulant autour du point fixe (r, g(r)).
% Ce programme illustre graphiquement le "fonctionnement"
% de la mthode ditration lorsquelle converge.
% La fonction dont on cherche un zro est y(x) = 1 - x^3/4
a=0:0.001:2;
b = a - a.^3/4 + 1;
plot(a,b,LineWidth,1.3)
axis equal
xlabel(\it x,FontSize,14); ylabel(\it g(x) = x - x^3/4 + 1,FontSize,14)
title(Mthode du point fixe,FontSize,14)
grid on ; hold on ; pause
x0=0.2;
NiterMax = 10;
plot(a,a,LineWidth,1.3);
hold on
X(1) = x0;
Y(1) = 0;
for n = 1:1:NiterMax
g = x0 - x0^3/4 + 1;
x(n)=g;
X(2) = x0;
Y(2) = g;
X(3) = g;
Y(3) = g;
plot(X,Y,rO-,LineWidth,1.3)
14. Dans le systme daxes (x, y) cest labscisse du point dintersection de la bissectrice y = x avec le
graphe de la courbe y = g(x).

19

X(1) = g;
pause
x0 = g;

Y(1) = g;

end
pause ; format long e; x
La mthode du point fixe converge
2
1.8
1.6

g(x) = x x3/4 + 1

1.4
1.2
1
0.8
0.6
0.4
0.2
0

0.5

1.5

Figure 1.3 La figure produite par le programme ci-dessus illustre une situation dans
laquelle la mthode du point fixe converge.
Remarque
Lorsque la mthode du point fixe converge, lillustration graphique de la convergence peut
conduire des diagrammes diffrents de celui que montre la figure 1.3. Au lieu davoir
une suite oscillante qui se traduit par un diagramme en "spirale", la convergence vers le
zro cherch peut tre monotone. La suite peut alors tre croissante ou dcroissante selon
les cas et prsente un diagramme en escalier.
La mthode cycle
Si lon essaye de trouver le zro de f (x) = 1 x3 /3 plutt que celui de f (x) = 1 x3 /4 la
mthode est prise en dfaut, elle cycle (voir page ??). Aprs un certain nombre ditrations,
les valeurs des itrs successifs se rptent en alternance, on a un cycle dordre deux avec
x2n = 1.62924292865886
et x2n+1 = 1.18767112407051 pour tout n suffisamment grand.
Ces valeurs encadrent 3 3 = 1.442249570307408 . . . le zro cherch.
20

% Ce programme illustre graphiquement le "fonctionnement"


% de la mthode ditration lorsquelle cycle.
% La fonction dont on cherche les zros est y(x) = 1 - x^3/3
a=0:0.001:2; b = a - a.^3/3 + 1; plot(a,b)
xlabel(x); ylabel(g = x - x^3/3 + 1)
title(Mthode du point fixe)
grid on ; hold on ; axis equal; pause
x0=0.2;
NiterMax = 10;
plot(a,a); hold on
X(1) = x0;
Y(1) = 0;
for n = 1:1:NiterMax
g = x0 - x0^3/3 + 1;
x(n)=g;
X(2) = x0;
Y(2) = g;
X(3) = g;
Y(3) = g;
plot(X,Y,rO-)
X(1) = g;
Y(1) = g;
pause
x0 = g;
end
pause ; format long ; x

Mthode du point fixe


2
1.8
1.6

1.2

g(x) = x x /3 + 1

1.4

1
0.8
0.6
0.4
0.2
0

0.5

1.5

Figure 1.4 La figure produite par le programme ci-dessus illustre une situation dans
laquelle la mthode du point fixe cycle.

21

La mthode diverge
% Point fixe - Diverge
% Ce programme illustre graphiquement le "fonctionnement"
% de la mthode ditration lorsquelle diverge.
% La fonction dont on cherche un zro est y(x) = x - sin(x) - 1
clc;clear
a=0:0.01:20;
b = 2*a - sin(a) - 1;
plot(a,b,LineWidth,1.3)
axis([0 20 0 20]); axis equal
xlabel(\it x,FontSize,14);
ylabel(\it g = 2x - sin x - 1,FontSize,14)
title(La mthode du point fixe diverge,FontSize,14)
grid on
hold on
pause
x0=1.935;
NiterMax = 12;
plot(a,a,LineWidth,1.3);
pause
X(1) = x0;
Y(1) = 0;
for n = 1:1:NiterMax
g = 2*x0 - sin(x0) - 1;
x(n)=g;
X(2) = x0;
Y(2) = g;
X(3) = g;
Y(3) = g;
plot(X,Y,rO-,LineWidth,1.3)
X(1) = g;
Y(1) = g;
pause
x0 = g;
end
pause
zoom on
format long
x
Le zro que lon cherche vaut 1.934563210752024 moins de 1014 prs (voir ci-dessous).
Bien que la valeur initiale, 1.9350, soit trs proche de ce zro, le processus itratif diverge. Il en va de mme si lon prend comme valeur de dpart 1.934563210752023 ou
1.934563210752025 !

22

La mthode du point fixe diverge


20
18
16

g = 2x sin x 1

14
12
10
8
6
4
2
0

10

15

20

Figure 1.5 La figure produite par le programme ci-dessus illustre une situation dans
laquelle la mthode du point fixe diverge.
La mthode du point fixe diverge
1.94
1.939
1.938

g = 2x sin x 1

1.937
1.936
1.935
1.934
1.933
1.932
1.931
1.93
1.93

1.932

1.934

1.936

1.938

1.94

Figure 1.6 Un zoom sur la figure prcdente permet de voir que ds la premire itration
les valeurs de la suite xn scartent de la position du zro.

23

Pour trouver le zro de x sin x 1 il suffit de changer de fonction ditration g et dcrire


x = 1+sin x au lieu de x = 2x1sin x, ce que fait le programme suivant. Ce programme
calcule galement un estimateur de la vitesse de convergence linaire ainsi quune estimation du nombre ditrations effectuer pour gagner 14 chiffres exacts supplmentaires. Si
on excute ce programme on constate que la vitesse de convergence est peu dpendante
de n et quil faut faire 32 itrations en tout, en partant de x1 = 2, pour obtenir un rsultat
prcis moins de 1014 prs. Le programme donne dailleurs x33 = 1.934563210752025.
x(1)=2;
for n=1:32
x(n+1)=1+sin(x(n));
end
format long e
% Affichage de la suite des x
x
% Estimation de la vitesse de convergence linaire K1
for n=1:31
K1(n)=(x(n+2)-x(n+1))/(x(n+1)-x(n));
end
% Estimation du nombre ditration faire pour gagner 14 chiffres
format short
NB_IT_14=round(1+14./-log10(abs(K1)));
% Affichage des K1(n) et du nombre ditrations faire pour gagner 14 chiffres
[K1 NB_IT_14]
% Valeurs moyennes
[mean(K1) mean(NB_IT_14)]

1.6.3

Justification de la mthode ditration

La justification thorique de la mthode du point fixe repose sur le thorme de Banach.


Point fixe
Soit r un rel et g une fonction de R dans R. Si lon a r = g(r) on dit que r est un point
fixe de g.
Thorme du point fixe
Soit I un intervalle ferm et born, et une fonction ditration g C 1 (I) telle que g(I) I

1. La fonction ditration g possde au moins un point fixe dans I.


2. Si max |g (x)| = K < 1, alors ce point fixe est unique.
xI

3. Si max |g (x)| = K < 1 et si, de plus, x0 I et {xn } est dfinie par litration
xI

xn+1 = g(xn ), pour n = 0, 1, 2, . . .

24

alors
a) |r xn+1 | K|r xn | (contraction)
b) |r xn | K n |r x0 | et xn r
r xn+1
= g (r) et |K1 (x)| K
c) K1 (x) = lim
n r xn
Pour la dmonstration de ce thorme nous renvoyons la page 61 du livre de Dion et
Gaudet[1].

Assouplissement des hypothses


Les hyptothses g C 1 (I) et max |g (x)| = K < 1 peuvent tre remplaces par les
xI

conditions plus souples g C 0 (I) et |g(x) g(y)| K|x y| pour x, y I avec K < 1
permettant une gnralisation du thorme ci-dessus.

1.6.4

Convergence de la mthode ditration

Une tude dtaille de la convergence de la mthode du point fixe peut tre trouve dans
Dion et Gaudet [1] pp.59 et seq.
Nous reprenons ici les point essentiels :
Soit r un point fixe de g et x1 une valeur "proche" de r.
La mthode diverge si |g (r)| > 1.
La mthode converge si |g (r)| < 1 (6= 0) et la convergence est linaire avec K1 (x) = g (r).

g (P ) (r)
Si g (r) = 0, la convergence est dordre P avec KP (x) =
(1)P P !
(P 1)
(P )
g
(r) = 0, et g (r) 6= 0.

1.6.5

si

g (r) = =

Du choix de la fonction ditration g

Comme nous lavons vu prcdemment, plus K1 (x) est proche de zro (sans sannuler)
plus la vitesse de convergence linaire est leve. Il est donc tre judicieux de se poser la
question :
comment choisir la fonction ditration g de faon avoir g (r) aussi proche de zro que
possible ?
Une dmarche simple permet de faire ce choix. En effet, si nous cherchons une racine r de
f (x) = 0 en crivant cette quation sous la forme x = g(x) nous pourrons, en principe,
trouver une fonction g pour laquelle g (r) 0. Il suffit pour cela de choisir g comme suit :
x = g(x) = x + C.f (x)

25

(1.2)

Cette quation a les mmes racines que f (x) = 0 et la constante C est un rel que lon
peut choisir de faon annuler g (r) en posant :
C=

1
f (r)

avec f (r) 6= 0

(1.3)

Ceci est videmment thorique 15 . En pratique, les choses sont un peu moins videntes
puisque la valeur de r est inconnue. Toutefois, on pourra remplacer la valeur thorique de
C par une valeur approche obtenue partir dune approximation de g (r) ou de f (r).
Exemple
Soit calculer une approximation de la plus petite racine positive, r, de f (x) = 1 + x sin x
par la mthode ditration. On constate aisment que f (0) > 0 et f (3/2) < 0 ce qui
implique que la fonction f (x) possde au moins un zro dans lintervalle [0, 3/2], puisque
f est continue dans cet intervalle. Un graphe de limage de cet intervalle permet de
dterminer une valeur approche du plus petit zro positif de f (x). On obtient r 3.4368.
1
Ecrivons prsent lquation sous la forme quivalente x = x +
(1 + x sin x) et
f (3.4368)
appliquons la mthode itrative via le programme suivant :
% Recherche du plus petit zro > 0 de f(x)=1+x.sin(x)
% par la mthode ditration
f=inline(1+x.*sin(x));
fp=inline(sin(x)+x.*cos(x));
x(1)=3.4368;
% Valeur de dpart
C=-1/fp(x(1));
% Constante C
for n=1:4
x(n+1)=x(n)+C*f(x(n));
end
format long e
format compact
% Itrs successifs
x=x
% Estimateur de la vitesse de convergence linaire
K1=(x(4)-x(3))/(x(3)-x(2))
% Nombre de chiffres prcis gagns par itration
NB_cpgi=-log10(abs(K1))
% Sous la forme standard de g(x) : g(x)=x+f(x)
% le processus serait divergent car |g(r)| > 1
gprime_standard = 1+fp(x(end))

15. Cette dmarche revient appliquer la mthode de Newton, cf. 2.7.

26

Les rsultats obtenus sont :


x =
3.436800000000000e+000
3.436828912433360e+000
3.436828912326676e+000
3.436828912326677e+000
3.436828912326677e+000
K1 =
-8.325285557294615e-006
NB_cpgi =
5.079600861265435e+000
gprime_standard =
-2.579094994011832e+000
La vitesse de convergence est trs leve et lon gagne environ cinq chiffres prcis par
itration. A la deuxime itration, le zro est approch avec une erreur de lordre de
1015 .

1.6.6

Evaluation du cot de la mthode ditration

Le cot de la mthode ditration du point fixe, par itration, est dune assignation et dune
valuation de fonction. Notons cependant que ceci ne nous donne pas une information
pertinente quant au cot total, en temps machine, que ncessite lobtention dune racine
particulire dune quation donne. Tout dpend videmment de lquation traite, du
choix qui est fait de la fonction ditration ainsi que de la prcision souhaite.

1.6.7

Avantages de la mthode ditration

Le principal avantage de la mthode ditration rside dans sa simplicit de mise en


oeuvre. De plus, on peut, la plupart du temps, trouver sans trop de difficult une fonction
ditration qui permet une convergence trs rapide.

1.6.8

Inconvnients de la mthode ditration

Le principal inconvnient de la mthode ditration est la lenteur de sa convergence, voire


mme sa divergence, si lon utilise une fonction ditration qui nest pas adquate.

27

1.7
1.7.1

Mthode de Newton (ou de la tangente)


Principe et algorithme de la mthode de Newton

Calculer une valeur approche dune racine r de lquation F (x) = 0 par la mthode de
Newton 16 revient assimiler, en un point donn P (x1 , F (x1 )), "proche" du zro cherch,
le graphe de la fonction celui de sa tangente en ce point. Si la fonction est "douce" au
voisinage du point P son graphe diffre peu de celui de sa tangente et lintersection de
cette dernire avec laxe des x fournit une approximation de la racine cherche, comme
on peut le voir la figure 1.7.
Mthode de Newton La fonction et sa tangente t
3

F(x) = 1 + x.sin(x)
2

F(x) = 1 + x.sin(x)

P
1

t
Q

Z
1

2.2

2.4

2.6

2.8

3.2

3.4

3.6

3.8

Figure 1.7 Mthode de Newton ou de la tangente. Au voisinage de P, on assimile la


fonction F sa tangente. Son intersection Q avec laxe des x fournit une approximation
du zro Z.
La traduction analytique du graphe de la figure 1.7 est la suivante :
Soit F (x) = 0 lquation rsoudre. Si, dans un voisinage [a, b] du zro r que lon cherche,
la fonction F est de classe C 1 on peut crire une quation de la tangente en P au graphe
de F : y F (x1 ) = F (x1 ).(x x1 ). Soit x2 labscisse du point Q dintersection de cette
16. On lappelle aussi mthode de Newton-Raphson, notamment pour le calcul des solutions de systmes
dquations non linaires.

28

tangente avec laxe des x. Elle sobtient videmment pour y = 0 et est donc fournie par
lquation :
x2 = x1 F (x1 )/F (x1 )

(1.4)

Ce qui permet dinduire lalgorithme suivant :


a) Choisir une valeur de dpart x1 "proche" du zro cherch
b) Faire : xn+1 = xn F (xn )/F (xn ) avec n = 1, 2, . . .
Une manire alternative dtablir la formule de Newton est de remplacer F (x) par son
dveloppement en srie de Taylor au voisinage de xn , "proche" de r :
2
3

F (xn + ) = F (xn ) + .F (xn ) + .F (xn ) + .F (xn ) + . . .
1!
2!
3!
F (xn ) + .F (xn )

(1.5)

do lon tire lquation 1.4 en remplaant par xn+1 xn et en assimilant F (xn +) F (r)
zro.

1.7.2

Interprtation gomtrique de la mthode de Newton

Lapplication de lalgorithme de Newton pour rsoudre F (x) = 0 engendre une suite de


tangentes au graphe de la fonction F ainsi quune suite de valeurs xn . Divers cas peuvent
se prsenter dont quelques uns sont envisags ci-aprs.
La mthode converge
Le programme suivant va nous permettre dillustrer diffrentes situations que lon peut
rencontrer lorsquon applique la mthode de Newton une quation qui possde de nombreux zros simples 17 .
On peut dailleurs facilement le modifier pour traiter nimporte quelle quation une
inconnue pour autant, bien entendu, que la fonction qui caractrise lquation soit de
classe au moins C 1 dans un voisinage de la racine cherche.
%
%
%
%
%
%
%
%
%

Mthode de Newton racine simple.


Ce programme illustre graphiquement le "fonctionnement"
de la mthode de Newton.
Il reprsente une partie de la courbe dquation y = 5 sin x - log x - 1
Il dtermine une racine de lquation 5 sin x - log x - 1 = 0
A laide du "zoom" on peut se rendre compte de la manire dont la
tangente la courbe, prs du point solution, se confond avec la courbe.
NB: la prsence de "pause" dans le programme ncssite une intervention
de loprateur pour que le programme continue.
17. Attention la confusion : multiples zros et zro multiple...

29

%
clc;clear;clf
a=0.001:0.001:5;
b = 5*sin(a)-log(a)-1;
plot(a,b,LineWidth,1.3)
xlabel(\it x,FontSize,14); ylabel(\it f(x) = 5 sin x - log x - 1,FontSize,14)
title(Mthode de Newton ou de la tangente,FontSize,14)
grid on
hold on
pause
x0=4.1;
NiterMax = 4;
for n = 1:1:NiterMax
f = 5*sin(x0) - log(x0) - 1;
fp = 5*cos(x0) - 1/x0;
x(n) = x0 - f/fp;
X(1) = x0;
Y(1) = 0;
X(2) = x0;
Y(2) = f;
X(3) = x(n); Y(3) = 0;
plot(X,Y,rO-,LineWidth,1.3)
pause
%
textx=[\it x num2str(n)];
%
gtext(textx,FontSize,12)
%
textP=[\it P num2str(n)];
%
gtext(textP,FontSize,12)
x0 = x(n);
end
pause
format long
x
Le premier graphe (figure 1.8), construit partir de ce programme, illustre la convergence
de la mthode de Newton vers un zro proche de 2.73, partir de la valeur initiale 4.1 en
seulement 4 itrations. Ce graphe permet de constater que la courbe et sa tangente sont
quasi confondues aprs seulement trois itrations (x4 = 2.738115 . . . ) bien que labscisse
de dpart vaille 4.1.
Un zoom sur cette figure confirme dailleurs cette constatation comme on peut le voir sur
la figure 1.9.

30

Mthode de Newton ou de la tangente


6

f(x) = 5 sin x log x 1

P2
2

x4

x2

x1

x3

P4
P3

P1

0.5

1.5

2.5

3.5

4.5

Figure 1.8 La mthode de Newton converge vers un zro de f (x) = 5 sin x log x 1
proche de 2.73.
Mthode de Newton ou de la tangente
0.02

P5

X4

f(x) = 5 sin x log x 1

0.02

0.04

P4
0.06

0.08

0.1

2.715

2.72

2.725

2.73

2.735

2.74

2.745

2.75

2.755

2.76

Figure 1.9 Zoom de la figure 1.8. Au voisinage de P4 la tangente est quasi confondue
avec le graphe de f (x).

31

Lapplication du programme prcdent en prenant comme valeur de dpart x0 = 4.2


conduit au graphe de la figure 1.10. Aprs 8 itrations le processus semble converger vers
x9 = 64.28649...

Mthode de Newton ou de la tangente


6

f(x) = 5 sin x log x 1

10

12

10

20

30

40

50

60

70

Figure 1.10 Si on prend comme valeur de dpart x = 4.2, aprs 8 itrations le processus
semble converger vers x9 = 64.28649...
En ralit, la fonction ne possde pas de zro au voisinage de x = 64 et si, pour la mme
valeur initiale du processus itratif, lon effectue 54 itrations au lieu de 8, on obtient
un nouveau graphe, reprsent la figure 1.11. Le zro trouv est bien loin du point de
dpart puisquil vaut x55 = 51.6881272625610 . . . , tous les chiffres affichs tant exacts.
Des agrandissements de la figure 1.11 dans les domaines [63.9, 64.8] (cf. figure 1.12) et
[51.2, 52.1] (cf. figure 1.13) permettent de visualiser la manire dont la suite des xn a
volu.

32

Mthode de Newton ou de la tangente


6

f(x) = 5 sin x log x 1

10

12

10

20

30

40

50

60

70

Figure 1.11 Si on prend comme valeur de dpart x = 4.2, aprs 54 itrations le


processus a converg vers 51.6881272625610.
Mthode de Newton ou de la tangente

f(x) = 5 sin x log x 1

0.05

0.1

0.15

0.2

63.9

64

64.1

64.2

64.3

64.4

64.5

64.6

64.7

64.8

Figure 1.12 Un zoom sur lintervalle [63.9, 64.8] montre que la fonction ne sannule pas
dans cette zone.

33

Mthode de Newton ou de la tangente


0.15

f(x) = 5 sin x log x 1

0.1

0.05

0.05

0.1

0.15

0.2
51.2

51.3

51.4

51.5

51.6

51.7

51.8

51.9

52

52.1

Figure 1.13 Linspection de lintervalle [51.2, 52.1] montre o aboutit la suite des itrs
de Newton : en x55 = 51.6881272625610 . . .

34

1.7.3

Newton avec ou sans complexes ?

Lquation 5 sin x log x 1 = 0 possde 17 zros rels simples. Elle possde galement
des racines complexes 18 dont une dizaine dentre-elles est donne ci-dessous. La mthode
de Newton fournit aisment ces racines si on utilise des valeurs ngatives de x1 pour
initier le processus itratif. Notons galement qu chaque racine complexe correspond
son complexe conjugu. Si lon classe les racines complexes dans lordre croissant de leur
module il semble, premire vue, qu partir dun certain rang, les parties relles de deux
racines complexes conscutives soient spares d peu prs 2.
-0.02397168807685
-5.80860767554988
-11.97306948958522
-18.18895563945838
-24.42583111971792
-30.67410589366283
-36.92951394177416
-43.18978758629538
-49.45357967168683
-55.72002616003292

1.7.4

0.32338608069695i
0.63769089201116i
0.68832405385070i
0.72144521189010i
0.74688651791948i
0.76778144177470i
0.78560135983540i
0.80117623285305i
0.81502806443427i
0.82750987350185i

Racines multiples

Lorsque la fonction F admet une racine multiple r, sa drive sannule en r. Dans ces
conditions, F et F prennent des valeurs trs petites au voisinage de r. Il en rsulte que
la convergence de la mthode de Newton est beaucoup plus lente que dans le cas dune
racine simple. Elle perd son caractre quadratique 19 et devient linaire (cf.page 38). Il y a
cependant moyen dacclrer la convergence en introduisant un coefficient multiplicateur
dans la formule de Newton 20 .
Thorme
Soit L un coefficient rel et xn une suite gnre par la mthode de Newton pondre
partir de x1 choisi
xn+1 = xn L.F (xn )/F (xn ) n = 1, 2, . . .

(1.6)

Supposons que la suite xn converge vers la racine r de multiplicit M et que K1 (x) =


r xn+1
existe, alors K1 (x) = 1 L/M si F C M +2 dans un certain voisinage
lim
n r xn
de r.
Ce thorme, permet dacclrer la convergence de la mthode de Newton dans le cas des
racines multiples au moyen dune stratgie adapte.
18. Il y en a vraisemblablement une double infinit.
19. Ou dordre plus lev que 2.
20. Un tel coefficient est souvent appel coefficient ou paramtre de relaxation.

35

Racine multiple Mthode de Newton classique : L = 1

14

x 10

f = (x ) sin x

0
3.134

3.136

3.138

3.14

3.142

3.144

3.146

3.148

3.15

Figure 1.14 Recherche du zro multiple de f (x) = (x )4 sin2 x. Interprtation


graphique. Notez lchelle des ordonnes : 1014 !
On commence par appliquer la mthode sous sa forme standard, cest--dire en faisant
L = 1 dans la formule (1.6). On calcule ensuite lestimateur K1 (x, n) = 1 L/M
K1 (x) = 1 L/M . On en dduit lentier M le plus proche de M que lon assimile L
et on poursuit les calculs en appliquant lalgorithme pondr (1.6) avec L = M .
Exemple 6
La fonction f (x) = (x )4 sin2 x admet la racine sextuple x = .
Avec x1 = 3.136, la mthode de Newton classique (non pondre) donne le graphe cidessous et les 15 premires approximations du zro multiple sont :
1
2
3
4
5

3.13693211217102
3.13770887094878
3.13835616914047
3.13889558384317
3.13934509583092

6
7
8
9
10

3.13971968900098
3.14003184988746
3.14029198390826
3.14050876222926
3.14068941081293

11
12
13
14
15

3.14083995128939
3.14096540168069
3.14106994367011
3.14115706199270
3.14122966059375

On constate que la convergence est trs lente. On a K1 (x, 13) = 0.83333332060902 ce qui
montre quil faut faire environ 13 itrations pour gagner un chiffre et donne galement
M = 5.99999954192482 do lon dduit L = M = 6.

36

Racine multiple Mthode de Newton pondre : L = 6


16

14

10

f = (x ) sin x

12

0.5

1.5

2.5

3.5

Figure 1.15 Recherche du zro multiple de f (x) = (x )4 sin2 x. Interprtation


graphique : sous leffet du coefficent de relaxation L, la "tangente" nest plus tangente !
Le mme problme rsolu laide de lalgorithme de Newton pondr avec L = 6 produit
les approximations suivantes :
3.14159267302610
3.14159265358979
NaN
NB : Le calcul montre que K1 (x, 1) = 0.83333231657359, il ntait donc pas ncessaire de
faire 15 itrations pour dterminer que est racine sextuple. En effet, lorsque la mthode
classique converge quadratiquement, K1 (x, n) est proche de zro.
Avec x1 = 2, les approximations obtenues sont :
3.35771429268940
3.14046162027139
3.14159265375056
3.14159265358979
NaN

37

1.7.5

Convergence de la mthode de Newton

Les thormes de convergence de la mthode ditration du point fixe peuvent tre appliqus la mthode de Newton. En effet, les algorithmes :
(1.7)

x1 = a
xn+1 = xn L.F (xn )/F (xn );

(1.8)

n = 1, 2, . . .

et
(1.9)

x1 = a
xn+1 = g(xn );

(1.10)

n = 1, 2, . . .

sont quivalents, condition de choisir :


g(x) = x L.F (x)/F (x)

(1.11)

Racine simple
Si la racine cherche est simple la convergence est ordre P , avec f (r) 6= 0, f (i) (r) =
0, pour 2 i P 1 et f (P ) (r) = 0.
Racine multiple
Si la racine cherche est multiple, la convergence est linaire, avec K1 (x) = 11/M o M
est la multiplicit de la racine.
Il en rsulte que plus la multiplicit de la racine est leve plus la convergence est lente,
au point de rendre la mthode inutilisable en partique, du moins sous sa forme standard.

1.7.6

Approximation de la drive

Pour calculer un zro de F (x) par la mthode de Newton il faut connatre la drive F (x).
Il peut arriver quon ne connaisse pas cette drive ou quil soit difficle de la calculer.
Cest le cas par exemple pour F (x) = 1 + log |(sin(xarctan(sinh(x

3 7 sec(3x2/3 )))

))|.

Un moyen de se tirer daffaire est de remplacer F (x) par une approximation base sur la
dfinition de la drive :
F (x + h) F (x)
(1.12)
F (x) = lim
h0
h
en choisissant x = xn et h "petit".
On peut prendre, par exemple, h = (xn xn1 ) (n > 1) o est un coefficient de
relaxation.
Lalgorithme de Newton est alors remplac par une version approche :
(1.13)

x1 = a
xn+1 = xn h.F (xn )/(F (xn + h) F (xn ));
38

n = 1, 2, . . .

(1.14)

1.7.7

Evaluation du cot de la mthode de Newton

Chaque itration de la mthode de Newton requiert une assignation, une soustraction, une
division et deux valuations de fonction. Ceci est videmment indicatif et les considrations
nonces prcdemment restent en vigueur 1.3.3.

1.7.8

Avantages de la mthode de Newton

Le principal avantage de la mthode rsulte de sa convergence au moins quadratique dans


le cas des racines simples.
Les hypothses de dpart sont gnralement assez peu contraignantes pour une fonction
qui admet peu de zros simples.
La mthode est peu sujette aux instabilits numriques.
Lalgorithme reste dapplication pour la dtermination de zros complexes de fonctions
relles.

1.7.9

Inconvnients de la mthode de Newton

Le prinipal inconvnient de la mthode de Newton est la ncessit de calculer la drive


de la fonction dont on cherche un zro.
La mthode de Newton peut savrer globalement plus lente que la mthode de la scante
en raison des valuations de fonctions.
Lorsquil y a des racines multiples la convergence peut devenir trs lente (sauf amnagements ).

39

Chapitre 2
Intgration numrique
VOIR FICHIER WORD

40

Chapitre 3
Equations diffrentielles ordinaires
3.1

Introduction

On se propose de rsoudre lquation diffrentielle suivante


dy
(t) = y (t) = f (t, y(t)) t [a, b]
dt
avec comme condition initiale :

y(a) = y0 .

En ce qui concerne les thormes dexistence et dunicit de ce problme de Cauchy nous


renvoyons le lecteur au cours danalyse mathmatique.
Sauf dans de rares cas particuliers, il est impossible de trouver une solution analytique
dun tel problme. On est donc amen essayer de calculer des valeurs approches de la
fonction inconnue y en certains points de lintervalle [a, b].
En pratique nous allons gnrer une suite de points (tk , yk ) tels que yk soient des valeurs
approches de la fonction inconnue : y(tk ) yk .
Divisons lintervalle [a, b] en N sous-intervalles que nous choisissons gaux par facilit. Le
kime intervalle est limit par tk1 et tk , et lon pose : tk = a + k.h pour k = 0, 1, 2, . . . , N
ba
avec h =
.
N
On appelle h le pas dintgration et lon a videmment a = t0 et b = tN .
Les points tk forment ce quon appelle indiffremment grille, rseau ou maillage.

41

3.2

Mthodes dEuler

Supposons que les fonctions y(t), y (t) et y (t) sont continues sur [a, b].
Le thorme de Taylor nous permet dcrire :
y(t1 ) = y(t0 + h) = y(t0 ) + h.y (t0 ) +

h2
y ()
2

o [a, b].

Comme y (t0 ) = f (t0 , y0 ), si h est suffisamment petit, on peut ngliger le terme en h2 et


obtenir la formule dEuler progressive, ou formule dEuler explicite :
y1 = y0 + h.f (t0 , y0 ).
Remarque
Cette formule peut galement tre obtenue par la mthode dintgration du rectangle.
Supposons h suffisamment petit pour que lon puisse approcher f (t, y(t)) sur [t0 , t1 ] par
f (t0 , y0 ), on obtient alors :
R t1
t0

y (t)dt = y(t1 ) y(t0 ) =

R t1
t0

f (t, y(t))dt

R t1
t0

f (t0 , y0 )dt = h.f (t0 , y0 )

et lon retrouve bien la formule dEuler explicite : y1 = y0 + h.f (t0 , y0 ).


Partant du point (t0 , y0 ) on a donc construit le point (t1 , y1 ). De ce point on peut dduire le
point suivant (t2 , y2 ) et, de proche en proche, lensemble des points (tk , yk ), k = 1, 2, . . . , N .
La formule dEuler explicite permet donc de trouver des valeurs approches du problme
de Cauchy selon lalgorithme suivant :
Choisir N
h=

ba
N

t0 = a
pour k = 0, 1, 2, . . . , N 1
faire
yk+1 = yk + h.f (tk , yk )
tk+1 = tk + h.

42

3.2.1

Exemple 1

% Rsolution du problme de Cauchy


%
% y(t) = (t-y)/2 ; y(0) = 1
%
% par la mthode dEuler explicite (ou progressive).
%
% Comparaison avec la solution exacte sur [t0 tf]
%
% Appelle euler qui utilise @fex1
%
figure(1)
t0=0; tf=6;
format short
hold on; grid on
axis([0 6 -1 5]);
title(Problme de Cauchy
y(t) = ( t - y ) / 2 ; y(0) = 1,FontSize,14)
xlabel(t,FontSize,14); ylabel(y(t),FontSize,14)
for N=2:2:12
E=euler(@fex1,t0,tf,1,N);
plot(E(:,1),E(:,2))
pause
end
%
N=100;
h=(tf-t0)/N; t=t0:h:tf; y=3*exp(-t/2) - 2 + t; plot(t,y,k); pause
E=euler(@fex1,t0,tf,1,N); plot(E(:,1),E(:,2),r); pause
%
figure(2)
title(Erreur relative,FontSize,14)
xlabel(t,FontSize,14); ylabel(erreur relative,FontSize,14);
grid on
hold on
for N=[150 300 600]
h=(tf-t0)/N; t=t0:h:tf; y=3*exp(-t/2) - 2 + t; E=euler(@fex1,t0,tf,1,N);
Y=E(:,2);
errel=(y-Y)./y;
plot(t,errel)
legend=strcat(h=,num2str(h));
gtext(legend,FontSize,14);
pause
pas=h
errmax=max(abs(errel))
end
43

gtext(Mthode dEuler explicite O(h),FontSize,14)


% FONCTION EULER
function E=euler(f,t0,tf,y0,N)
%
% Rsout le problme de Cauchy
% y = f(t,y), y(t0) = y0
% par la mthode dEuler explicite pas constant
%
% ENTREES
%
% f est le second membre de lquation intgrer - (string)
% t0 et tf sont les bornes de lintervalle dintgration
% y0 est la condition initiale : y(t0) = y0
% N est le nombre de pas dintgration
%
% SORTIES
%
% E = [T Y] o T est le vecteur des abscisses de calcul
% et Y celui des valeurs approches de la fonction cherche
h=(tf-t0)/N;
T=zeros(1,N+1); Y=zeros(1,N+1);
T=t0:h:tf;
Y(1)=y0;
for k=1:N
Y(k+1) = Y(k) + h*feval(f,T(k),Y(k));
end
E = [T Y];
% FONCTION fex1
function f=fex1(t,y)
f=(t-y)/2;

44

Problme de Cauchy

y(t) = ( t y ) / 2 ; y(0) = 1

y(t)

Figure 3.1 Rsolution approche du problme de Cauchy pour divers pas dintgration.
La solution analytique y(t) = 3et/2 2 + t est reprsente en noir. La solution approche
obtenue avec N=100 est en rouge.
Erreur relative
0.012

Mthode dEuler explicite O(h)


0.01

h=0.04

erreur relative

0.008

0.006

h=0.02
0.004

h=0.01
0.002

Figure 3.2 Rsolution approche du problme de Cauchy, erreur relative pour trois pas
dintgration diffrents. On constate que lerreur maximum dcrot linairement avec le
pas dintgration.

45

Au lieu dexprimer y(t1 ) partir de y(t0 ) grce au thorme de Taylor, on peut procder
autrement et exprimer y(t0 ) partir de y(t1 ) selon la formule :
y(t0 ) = y(t1 h) = y(t1 ) h.y (t1 ) +

h2
y ()
2

o [a, b].

En ngligeant, comme prcdemment, le terme en h2 on obtient la formule dEuler rgressive, ou formule dEuler implicite :
y1 = y0 + h.f (t1 , y1 ).
On dit que ce schma est implicite dans la mesure o la quantit que lon dsire calculer,
y1 , nest pas connue explicitement.
Dans ce cas, le calcul de y1 ncessitera, en gnral 1 , le recours une mthode de rsolution
dune quation une inconnue.
Ainsi, si nous dfinissons la fonction g(x) = x h.f (t1 , x) y0 nous pouvons obtenir y1
au moyen de lalgorithme de Newton :
x0 = y0 ,

xm+1 = xm

g(xm )
,
g (xm )

m = 0, 1, 2, . . .

La plupart du temps on pourra se contenter deffectuer un trs petit nombre ditrations


de la mthode de Newton dans la mesure o, pour h petit, y1 est proche de y0 .
Remarque
Comme la formule explicite, la formule dEuler implicite peut aussi tre obtenue par la
mthode dintgration du rectangle 2 .
Supposons h suffisamment petit pour que lon puisse approcher f (t, y(t)) sur [t0 , t1 ] par
f (t1 , y1 ), on obtient alors :
R t1
t0

y (t)dt = y(t1 ) y(t0 ) =

R t1
t0

f (t, y(t))dt

R t1
t0

f (t1 , y1 )dt = h.f (t1 , y1 )

et lon retrouve bien la formule dEuler implicite : y1 = y0 + h.f (t1 , y1 ).


Les figures 3.3 et 3.4 montrent les comportements des mthodes dEuler explicite et implicite dans le cas du problme de Cauchy de lexemple prcdent.

1. Il est parfois possible dexpliciter y1 partir de la formule dEuler implicite.


2. La hauteur du rectangle vaudra cette fois f (t1 , y1 ), a priori inconnue, puisquelle dpend de y1 !

46

Problme de Cauchy y(t) = (ty)/2 y(0) = 1


5

y(t)

Figure 3.3 Les solutions approches par la mthode explicite sont en bleu et celles
obtenues par la mthode implicite sont en vert. On remarque que lune des mthodes
approche la solution par le bas et lautre par le haut.
Erreur relative
0.015

erreur relative

Mthode dEuler explicite O(h)


0.01

h=0.04

0.005

h=0.02
h=0.01

h=0.01
0.005

h=0.02

0.01

h=0.04
Mthode dEuler implicite O(h)

0.015

3
t

Figure 3.4 Rsolution approche du problme de Cauchy, erreur relative pour trois
pas dintgration diffrents. Les courbes bleues correspondent la mthode explicite et
les rouges la mthode implicite. On constate la quasi symtrie des courbes derreur et
que le maximum de lerreur dcrot linairement avec le pas dintgration h.

47

3.3

Stabilit

A premire vue, la formule dEuler explicite semble prfrable au schma implicite. Ce


nest cependant gnralement pas le cas dans la mesure o elle prsente des problmes de
stabilit que le schma implicite noccasionne pas.
Considrons le problme de Cauchy particulier suivant :
y (t) = y(t) t > 0
avec comme condition initiale :

y(0) = y0 .

Si est positif, ce que nous supposerons, la solution de ce problme est : y(t) = y0 et et


y(t) dcrot exponentiellement quand t vers linfini.
Soit un nombre rel petit h > 0.
Posons tn = n h avec n = 0, 1, 2, . . .
le schma dEuler explicite nous donne comme valeurs approches de la solution du problme :
yn+1 = (1 h) yn ou encore : yn = (1 h)n y0 pour n = 0, 1, 2, . . .
Cette dernire expression nous montre donc que si y0 6= 0 et 1 h < 1, la suite yn ,
qui est une solution approche du problme, tend vers linfini en alternant les signes, si n
tend vers linfini, au lieu de tendre vers zro comme le fait la solution exacte !
Pour viter ce phnomne, il faut choisir h de manire avoir : 1 1 h cest--dire
imposer h 2 .
Cette condition qui restreint le pas h lorsquon utilise le schma dEuler explicite est appele condition de stabilit.
Le schma dEuler implicite ne prsente pas cet inconvnient.
En effet, dans le cas du problme type tudi ici, le schma implicite fournit :
1
)n y0 pour n = 0, 1, 2, . . .
yn = (1 + h) yn+1 , ou encore : yn = ( 1+h

Nous voyons donc que h lim yn = 0,


n

et le schma dEuler implicite est donc stable quel que soit h, qui ne doit pas tre limit
a priori.

48

NB : on peut montrer que les schmas dEuler explicite et implicite sont tous deux dordre
1 en h. Ceci signifie que lorsquon divise le pas dintgration par deux lerreur obtenue
pour une valeur de t fixe est divise par deux galement 3 .
C
Plus prcisment, pour h = Nt on a : |y(t) yN | N
o C est une constante qui ne
dpend pas de N mais qui peut dpendre de la valeur de t. Lorsque N tend vers linfini,
cest--dire lorsque h tend vers zro (pour t fix) on a :

lim |y(t) yN | = 0 et |y(t) yN | = O(h).

h0

Pour plus de dtails, voir par exemple : J.Rappaz et M.Picasso, Introduction lanalyse
numrique, Presses polytechniques et universitaires romandes 1998, p.144.

3.3.1

Exemple 2

On peut facilement illuster le phnomne dinstabilit (voir figures 3.5 et 3.6). Il suffit par
exemple de chercher des approximations du problme de Cauchy
dy
(t)
dt

= y (t) = 5.y(t) avec y(0) = 2

pour

0<t<3

function testeuler_2
% Instabilit de la mthode dEuler explicite
% Rsolution du problme de Cauchy%
% y(t) = -5y + t ; y(0) = y0
%
H=[0.45 0.3 0.15 0.075 0.0015]; t0=0; tf=3; y0=2;
N=round((tf-t0)./H)+1
figure(2); format short; hold on; grid on; xlabel(t); ylabel(y(t))
titre=strcat(Problme de Cauchy - y(t) = -5y + t; y(0) = ,num2str(y0));
title(titreFontSize,14); col=[k r b m g];
for i=1:length(H)
E=euler(@fex2,t0,tf,y0,N(i))
plot(E(:,1),E(:,2),col(i),LineWidth,2)
pause
end
% Solution analytique
u=0:0.001:3; v=(51*exp(-5*u)+u*5-1)/25;
plot(u,v,c,LineWidth,2)
gtext(Mthode dEuler explicite,FontSize,14);
%
function f=fex2(t,y)
f=-5*y+t;
3. Comme sur les figures 3.2 et 3.4

49

Problme de Cauchy

y(t) = 5 y + t ; y(0) =2

Mthode dEuler explicite


1.5

y(t)

0.5

0.5
h = 0.45
h = 0.30
h = 0.15
h = 0.075
h = 0.0015
Solution analytique

1.5

0.5

1.5

2.5

Figure 3.5 Instabilit de la mthode dEuler explicite. Lorsque le pas h est suffisamment
petit, on ne distingue pas le graphe de la solution approche (en vert) de celui de la solution
analytique (en cyan).
Problme de Cauchy y(t) = 5y + t; y(0) =2
2
1.8

Mthode dEuler implicite


1.6
1.4

y(t)

1.2
h = 0.45
h = 0.30
h = 0.15
h = 0.075
h = 0.0015
Solution analytique

1
0.8
0.6
0.4
0.2
0

0.5

1.5

2.5

Figure 3.6 Stabilit de la mthode dEuler implicite. Les diffrents pas utiliss sont les
mmes que sur la figure ptcdente.

50

3.4

Schmas dintgration un pas

Revenons au problme de Cauchy du point 3.1.


dy
(t)
dt

= y (t) = f (t, y(t)) t [a, b]

avec comme condition initiale :

y(a) = y0 .

Par intgration entre tn et tn+1 nous obtenons :


y(tn+1 ) = y(tn ) +

R tn+1
tn

f (t, y(t))dt

Comme la fonction y(.) est inconnue, nous ne pouvons calculer lintgrale ci-dessus que de
manire approche. Selon la faon dapprocher cette intgrale, nous obtenons diffrents
schmas de rsolution du problme de Cauchy.
Supposons que h = tn+1 tn est suffisamment petit pour pouvoir considrer que lintgrand est constant sur lintervalle dintgration. Selon le choix de cette constante on
obtient :
Schma dEuler explicite (Rgle du rectangle)
On remplace lintgrand par f (tn , yn ).
Schma dEuler implicite (Rgle du rectangle)
On remplace lintgrand par f (tn+1 , yn+1 ) = f (tn + h, yn+1 )
Schma de Crank-Nicolson (Rgle du trapze)
On remplace lintgrand par 12 [f (tn , yn ) + f (tn+1 , yn+1 )] = 12 [f (tn , yn ) + f (tn + h, yn+1 )]
Ce schma est videmment implicite et on peut montrer quil est dordre 2 en h. Il correspond galement la moyenne obtenue partir des schmas dEuler explicite et implicite.
Il scrit :
yn+1 = yn + h2 [f (tn , yn ) + f (tn+1 , yn+1 )] pour n = 0, 1, 2, . . .
Schma de Heun ou de Runge-Kutta deux paramtres
Pour viter le calcul implicite de yn+1 dans le schma de Crank-Nicolson, on peut remplacer, dans f (tn+1 , yn+1 ), yn+1 par une valeur approche obtenue par une prdiction yg
n+1
fournie par le schma dEuler explicite :
yn+1 = yn + h2 [f (tn , yn ) + f (tn+1 , yn + h.f (tn , yn ))] = yn + h2 (k1 + k2 )
51

o k1 = f (tn , yn ),

yg
n+1 = yn + h.f (tn , yn )) = yn + h.k1 et k2 = f (tn+1 , yg
n+1 )

On obtient ainsi la mthode de Heun qui fait partie des mthodes de Runge-Kutta explicites dordre deux, deux paramtres, que lon nomme souvent RK2. Les mthodes
prsentes dans ce paragraphe sont dites un pas car le calcul de yn+1 ne ncessite que
la connaissance de lapproximation au pas prcdent : yn .

3.4.1

Retour lexemple 1

Reprenons le problme de Cauchy de lexemple 1 et cherchons-en des solutions approches par les mthodes de Crank-Nicolson et de Heun de manire comparer les erreurs
commises avec celles produites par les mthodes dEuler.
Les figures 3.7 et 3.9 prsentent les solutions approches obtenues en partitionnant lintervalle dintgration [0, 6] en 2,4,8,10 et 12 sous-intervalles gaux. Elles sont rapprocher
des figures 3.1 et 3.3. On voit clairement que la convergence est plus rapide pour les mthodes O(h2 ). Les figures 3.8 et 3.10 prsentent les erreurs relatives et sont rapprocher
des figures 3.2 et 3.4.
Problme de Cauchy

y(t) = ( t y ) /2 ; y(0) = 1

Mthode de CrankNicholson O(h)


4

y(t)

Figure 3.7 Solutions approches par la mthode de Crank-Nicolson, comparer avec


les figures 3.1, 3.3 et 3.9.

52

Erreur relative

x 10

Mthode de CrankNicholson O(h)


3.5

h=0.04

erreur relative

2.5

1.5

h=0.02

0.5

h=0.01
0

3
t

Figure 3.8 Rsolution approche du problme de Cauchy par la mthode de CrankNicolson. Le maximum de lerreur relative dcrot quadratiquement avec le pas dintgration h. A comparer avec les figures 3.2, 3.4 et 3.10.
Le tableau ci-dessous rsume les observations que lon peut faire partir de ces figures.
Mthode
Euler explicite
Euler explicite
Euler explicite
Euler implicite
Euler implicite
Euler implicite
Crank-Nicolson
Crank-Nicolson
Crank-Nicolson
Heun ou RK2
Heun ou RK2
Heun ou RK2

h
0.04
0.02
0.01
0.04
0.02
0.01
0.04
0.02
0.01
0.04
0.02
0.01

Erreur relative maximale en valeur absolue Ordre


1.1875102
h
3
5.907310
h
3
2.946210
h
1.1639102
h
3
5.848410
h
3
2.931510
h
3.9186105
h2
9.7962106
h2
6
2.449010
h2
7.9556105
h2
1.9740105
h2
6
4.916510
h2

On constate que les erreurs maximales sont du mme ordre de grandeur pour les mthodes
dEuler explicite et implicite 4 et quil en va de mme en ce qui concerne les mthodes de
Crank-Nicolson et de Heun. Toutefois, pour ces deux mthodes qui sont O(h2 ) les erreurs
sont plus petites de plusieurs ordres de grandeurs. On remarque aussi que la mthode de
Heun est moins prcise que celle de Crank-Nicolson. Cela provient du fait que la mthode
de Heun utilise une valeur de dmarrage fournie par la mthode dEuler explicite.
4. Leurs signes sont toutefois opposs.

53

Problme de Cauchy

y(t) = ( t y ) / 2 ; y(0) = 1

y(t)

Mthode de Heun O(h)


0

Figure 3.9 Solutions approches par la mthode de Heun ou RK2, comparer avec les
figures 3.1, 3.3 et 3.7.
Erreur relative

x 10

h=0.01
1

h=0.02

erreur relative

Mthode de Heun O(h)


5

h=0.04

Figure 3.10 Rsolution approche du problme de Cauchy par la mthode de Heun


ou RK2, erreur relative pour trois pas dintgration diffrents. Le maximum de lerreur
dcrot quadratiquement avec le pas dintgration h. A comparer avec les figures 3.2, 3.4
et 3.8.

54

3.5

Schmas dintgration pas multiples

Supposons que pour approcher lintgrale


son :
R tn+2
tn

R tn+2
tn

f (t, y(t))dt on utilise la formule de Simp-

f (t, y(t))dt h3 [fn + 4fn+1 + fn+2 ]

on obtient alors, en posant fn = f (tn , yn ), lalgorithme suivant :


y0 = y(t0 );

yn+1 = yn1 + h3 [fn1 + 4fn + fn+1 ];

n = 1, 2, . . .

avec h = tn+1 tn

o le pas dintgration h est suppos constant.


Une telle mthode est dite deux pas car le calcul de yn+1 utilise non seulement yn mais
aussi yn1 . On constate que pour que le processus fonctionne, il faut disposer dune approximation y1 de y(t1 ). Cette approximation est obtenue laide dune formule que lon
appelle formule de dmarrage qui peut, par exemple, tre la formule de Heun. Enfin, la
mthode est implicite dans la mesure o le calcul de fn+1 ncessite la connaissance de
yn+1 cest--dire de la quantit que lon veut calculer !
On gnralise facilement aux Rmthodes plus de deux pas. Elles dcoulent de la manire
t
dont on approche lintgrale tnn+p f (t, y(t))dt o p est le nombre de pas de la mthode 5 .

3.6

Systmes dquations diffrentielles ordinaires


du premier ordre

Problme de Cauchy
Le problme de Cauchy scrit comme dans le cas dune seule quation (cas scalaire) :
dy
(t)
dt

= y (t) = f (t, y(t)) t [a, b]

avec la condition initiale :

y(a) = y0 .

Toutefois, la signification des diffrents termes nest plus la mme :


y(.) et f (., .) sont prsent des fonctions vectorielles et y0 est le vecteur des conditions
initiales.
On peut appliquer les diffrentes dmarches dveloppes ci-dessus au problme de Cauchy
vectoriel.
5. Rappel : le pas h = tk+1 tk est constant.

55

Par exemple, le schma dEuler explicite scrit, comme dans le cas scalaire :
Choisir N
h=

ba
N

t0 = a
pour

k = 0, 1, 2, . . . , N 1

faire

yk+1 = yk + h.f (tk , yk )

tk+1 = tk + h

3.6.1

Exemple 3 - Simulation dune pidmie de grippe.

Appliquons la mthode dEuler explicite pour rsoudre un problme qui simule lvolution dune pidmie de grippe. Lpidmie est modlise par un systme de trois quations
diffrentielles ordinaires non-linaires. Ce modle d Kermack et McKendrick, qui date
de 1927, est connu sous le nom de modle SIR.
Ses quations scrivent
dS
dt

= S = S.I

dI
dt

= I = S.I I

dR
dt

= R = I

(Nombre dindividus par jour)


(Nombre dindividus par jour)

(Nombre dindividus par jour)

avec comme conditions initiales


S(0) = S0

I(0) = I0

et R(0) = R0 .

Dans ces quations, la population concerne par lpidmie est divise en trois classes,
les individus sains ou susceptibles de contracter la maladie (S), les individus malades ou
infects qui sont contagieux (I) et les individus qui ont recouvr la sant (R). 6
On suppose que linfection se propage 7 par la rencontre entre susceptibles et malades
(terme S.I) et que la gurison se fait au bout de 1/ jours (terme I). Enfin, on
fait lhypothse simplificatrice que pendant la dure de lpidmie la population totale
S + I + R reste constante.
6. On suppose que la maladie est bnigne et que personne nen meurt.
7. La dure dincubation est suppose ngligeable.

56

Le programme ci-dessous permet de simuler la propagation dune pidmie de grippe dans


une population de 10.000 personnes dont une seule est infecte linstant initial. Par
modification des paramtres, dautres types dpidmies peuvent galement tre simules.
Les rsultats de la simulation sont prsents la figure 3.11.
% Simulation du modle SIR de Kermack et McKendrick (1927).
% cf. Mathematical biology - Ed. Springer Verlag (1990) par J.D.Murray (page 613).
%
% Intgration par la mthode dEuler explicite.
%
% Le taux de propagation de lpidmie est appel beta.
% Le taux de gurison est not gamma et 1/gamma est la dure de linfection.
%
% On peut discuter linfluence de beta et gamma.
%
% S : nombre dindividus sains (susceptibles);
% I : nombre de malades (infectives);
% R : nombre de guris ou dcds (recovered).
%
% NB : gamma peut aussi inclure le taux de dcs, il sagit en fait du taux
% de passage de la catgorie I la catgorie R (mort et/ou guri)
%
clf;
figure(1)
hold on
axis([0 100 0 10000]); title(Modle de Kermack et McKendrick)
xlabel(Temps (jours)); ylabel(S I R (nombre dindividus))
dt = 0.05;
Tmax=100;
beta=1/20000;
gamma=1/3;
I=1;
% Un seul malade est introduit dans la population
R=0;
% Au dpart, personne nest immunis
S=10000-I;
% La population totale initiale est de 10000 individus
for t=0:dt:Tmax
% On dfinit cinq variables auxiliaires
T1 = beta*S*I;
T2 = gamma*I;
DS = -T1;
DI = T1 - T2;
DR = T2;
% Euler explicite
S = S + dt*DS;
I = I + dt*DI;
R = R + dt*DR;
57

%
% Petite astuce, on utilise des complexes pour reprsenter les rsultats
%
pointS = t + i*S;
pointR = t + i*R;
pointI = t + i*I;
plot(pointS,g,LineWidth,1.5); % Individus sains courbe verte
plot(pointI,r,LineWidth,1.5); % Individus malades (infectives) courbe rouge
plot(pointR,b,LineWidth,1.5); % Individus guris (Removed) courbe bleue
end
grid on
gtext(Sains,FontSize,14)
gtext(Infects (malades contagieux),FontSize,14)
gtext(Guris,FontSize,14)

Modle de Kermack et McKendrick


10000
9000

S I R (nombre dindividus)

8000

Sains

7000
6000
5000
4000

Guris
3000
2000
1000
0

Infects (malades contagieux)


0

10

20

30

40

50

60

70

80

90

100

Temps (jours)

Figure 3.11 Modle de Kermack et McKendrick pour simuler lvolution dune pidmie
de grippe.

58

Remarque
Une quation diffrentielle dordre n peut tre remplace par un systmes de n quations
du premier ordre.

3.6.2

Exemple 4

Soit lquation du 3me ordre


y (x) = [y (x) + (1 y 2 (x))].y (x) + sin x, o est une constante
et les conditions initiales associes
y(0) = y0 ,
Posons

y (0) = y0
y(x) = u1 (x),

et y (0) = y0
y (x) = u2 (x) et y (x) = u3 (x)

Il vient
u1 (x) = u2 (x)
u2 (x) = u3 (x)
u3 (x) = [u3 (x) + (1 u21 (x))].u2 (x) + sin x
et
u1 (0) = y0
u2 (0) = y0
u3 (0) = y0
La rsolution numrique de ce problme de Cauchy peut-tre obtenue aisment laide
des procdures dintgration de Matlab. Voici un exemple de programme qui utilise la
procdure ode45 qui fait appel aux mthodes de Runge-Kutta explicites 4 et 5 paramtres pas adaptatif (dans les zones o la fonction inconnue ou une de ses drives varie
fortement, le pas dintgration est automatiquement rduit) :
function ode3
global MU
MU= 0.001; xspan = [0; 100]; u0 = [1; 5; 0]; ode45(@uprime,xspan,u0);
title([Rsolution dun systme de trois quations, \mu = num2str(MU)]);
xlabel(Position x); ylabel(solution u(x));
% --------------------------------------------------------------------------

59

function dydx = uprime(x,u)


global MU
dydx = [
u(2)
u(3)
MU*(u(3)+(1-u(1)^2))*u(2) + sin(x) ];

Rsolution dun systme de trois quations, = 0.001


30

25

20

solution u(x)

15

10

10

15

20

10

20

30

40

50

60

70

80

90

100

Position x

Figure 3.12 Graphe fourni par ode3.


On trouve plusieurs exemples de systmes dquations diffrentielles ordinaires ainsi que
de systmes diffrentiels-algbriques dans les "demos" de Matlab. (Cf. par exemple vdpode
dans Matlab701\toolbox\matlab\demos ainsi que odedemo et les divers programmes dont
le nom se termine par ode).

3.7

Prudence et petits pas

La rsolution de problmes numriques laide de procdures "toutes faites" que lon


nomme souvent "botes noires" ne peut se faire sans prcautions.

60

3.7.1

Exemple 5

Lquation diffrentielle linaire du second ordre y (x) + 2y (x) + y(x) = 0, associe aux
conditions initiales y(0) = 0, y (0) = 1 peut tre remplace par le problme de Cauchy
suivant (on pose y(x) = u1 (x) et y (x) = u2 (x))
u1 (x) = u2 (x)
u2 (x) = u1 (x) 2u2 (x)
u1 (0) = 0
u2 (0) = 1
elle admet comme solution y(x) = u1 (x) = xex .
La rsolution du problme de Cauchy laide des procdures standard de Matlab ode15s,
ode23s et ode45 permet dlaborer les figures 3.13 et 3.14. La figure 3.13 montre lcart qui
il y a entre les solutions approches et la solution analytique. A premire vue, les erreurs
diminuent sensiblement avec x. Toutefois, la figure 3.14 nous apprend quen ralit les
erreurs augmentent trs fort pour x [5, 15].
Ecart entre la solution approche et la solution exacte

x 10

Erreur absolue (x)

ode15s
4

ode23s
0

ode45

10

15

Position x

Figure 3.13 Erreurs absolues commises lors de la rsolution du problme de lexemple


5 par les procdures standard ode15s, ode23s et ode45 de Matlab.

61

Ecart relatif entre la solution approche et la solution exacte


0.1

0.08

Erreur relative (x)

0.06

ode23s
0.04

ode15s
0.02

ode45
0.02

10

15

Position x

Figure 3.14 Erreurs relatives commises lors de la rsolution du problme de lexemple


5 par les procdures standard ode15s, ode23s et ode45 de Matlab.

x 10

Ecart relatif entre la solution approche et la solution exacte

2.5

options=odeset(AbsTol,1e10,RelTol,1e12
Erreur relative (x)

1.5

ode23s
0.5

ode45
0

ode15s
0.5

10

15

Position x

Figure 3.15 Erreurs relatives commises lors de la rsolution du problme de lexemple


5 par les procdures ode15s, ode23s et ode45 de Matlab en modifiant les "tolrances".

62

3.8
3.8.1

Problmes aux conditions aux limites


Introduction

Soient c(x) et f (x) deux fonctions continues sur lintervalle [0, 1]. Dterminer la fonction
u(x) deux fois continment drivable sur [0, 1] qui satisfait aux conditions suivantes
u (x) + c(x).u(x) = f (x) pour x [0, 1] avec u(0) = u0 ;

u(1) = uf

consiste rsoudre un problme aux conditions aux limites du second ordre.


Ce problme est linaire, non homogne, aux conditions aux limites non-homognes.
Pour ce qui concerne lexistence et lunicit de la solution de ce problme, nous renvoyons
au cours danalyse mathmatique.
Remarques
1) Lorsque f est identiquement nulle sur [0, 1] on dit que le problme est homogne. Si
u0 = uf = 0 on dit que les conditions aux limites sont homognes.
2) Un problme homogne aux conditions aux limites homognes admet toujours la solution triviale et, ventuellement une infinit de solutions appeles fonctions propres du
problme.
3) Il existe videmment des problmes aux conditions aux limites dordre suprieur 2.
Ainsi, les solutions du systme suivant correspondent aux modes propres de vibration
dune poutre encastre ses deux extrmits. L est la longueur de la poutre, z(x) sa
dflexion au point dabscisse x et une constante lie la frquence de vibration de la
poutre et ses caractristiques physiques
z (x) + 4 z(x) = 0
z(0) = z(L) = 0
z (0) = z (L) = 0
La rsolution analytique de ce type de problmes est souvent impossible, mme dans le
cas du problme du deuxime ordre prsent la page prcdente.
On doit, trs gnralement, se contenter de solutions numriques approches. Nous nous
limiterons ici lexpos trs bref de deux mthodes de rsolution :
1) La mthode des diffrences finies.
2) La mthode de tir au but.

63

3.8.2

Mthode des diffrences finies

Drive numrique dune fonction en un point


La dfinition de la drive dune fonction en un point
f (x h) f (x)
f (x + h/2) f (x h/2)
f (x + h) f (x)
= lim
= lim
h0
h0
h0
h
h
h

f (x) = lim

nous permet de remplacer u (xn ) par une valeur approche O(h) :


u (xn )

u(xn ) u(xn h)
u(xn + h) u(xn )

h
h

ou, mieux, O(h2 ) :


u (xn )

u(xn + h/2) u(xn h/2)


u(xn + h) u(xn h)

2h
h

pour autant que h soit suffisamment petit.


Le calcul des drives dordre suprieur sobtient aisment. Par exemple, pour la drive
seconde, on obtient, par application de la dernire approximation de la drive premire :
u (xn )

u (xn + h/2) u (xn h/2)


u(xn + h) 2u(xn ) + u(xn h)

+ O(h2 ).
h
h2

Bien entendu, les valeurs u(xn ) sont inconnues et en pratique, on les remplacera par des
approximations notes : un , telles que un u(xn ).
Equations aux diffrences finies
Nous supposons que lintervalle sur lequel nous recherchons la fonction u(x) est partitionn en N + 1 sous-intervalles gaux, de longueur h = 1/(N + 1), au moyen dabscisses
de discrtisation x0 = 0, x1 = h, . . . , xj = j.h, . . . , xN +1 = 1.
Le problme continu de dpart est remplac par le problme discret approch qui consiste
calculer les inconnues uj solutions du systme dquations aux diffrences suivant :
uj1 + 2uj uj+1
+ c(xj )uj = f (xj ) 1 j N,
h2
u(x0 ) = u0
u(xN +1 ) = uf
Il sagit dun systme tridiagonal, qui dans le cas particulier tudi ici, est linaire.

64

Remarque
Les problmes dordre 2 et 4 prsents ci-dessus ne contiennent que la fonction et sa
drive dordre maximum (2 ou 4). Lquation du second ordre pourrait videmment
contenir un terme en y (x) tout comme lquation dordre 4 pourrait prsenter des termes
en y (x), y (x) et y (x).

3.8.3

Exemple 6

Calculons une solution approche du problme aux conditions aux limites :


y (x) + sin(x).y(x) = cos(x) 0 x .
y(0) = y() = 1.
A cette fin, pour N = 4, 8, 16, 32, 64 :

et n = 0, 1, 2, . . . , N + 1;
N +1
b) on discrtise lquation selon yn + sin(xn ).yn = cos(xn ) avec y(xn ) yn
yn1 2yn + yn+1
et yn
;
h2N
c) on rsout le systme tridiagonal N N obtenu.
a) on pose xn = n.hN , avec hN =

Voici le programme qui permet de rsoudre ce problme et la figure quil produit.


clc; clear; figure(1)
hold on; grid on;
col=[g b m k c];
xlabel(x,FontSize,14);
ylabel(y,FontSize,14);
title(Problme aux conditions aux limites,FontSize,14);
for i=2:6
N=2^i; h=pi/(N+1);
for n=1:N
x(n)=h*n;
end
d=h*h*sin(x)-2;
Mat=diag(d) + diag(ones(N-1,1),1) + diag(ones(N-1,1),-1);
Sec=h*h*cos(x);
Sec(1)=Sec(1)-1;
Sec(N)=Sec(N)-1;
sol=Mat\Sec; % "Division matricielle de Matlab"
t=[0 x pi]; y=[1 sol 1];
plot(t,y,col(i-1),LineWidth,1.5)
end
65

Problme aux conditions aux limites


10
N=4
N=8
N = 16
N = 32
N = 64

0.5

1.5

2.5

3.5

Figure 3.16 Approximations de la solution du problme de lexemple 6. Les courbes


correspondant N = 32 et N = 64 sont quasi confondues.

3.8.4

Mthode de tir au but

Soit le problme aux conditions aux limites du second ordre


y (x) + a(x, y(x), y (x)).y (x) + b(x, y(x), y (x)).y(x) + c(x, y(x), y (x)) = 0
y(a) = y0
y(b) = yf

x [a, b]

dont nous supposons quil admet une solution unique.


Il sagit dun problme trs gnral qui est linaire si on remplace les fonction a, b et c par
des fonctions qui ne dpendent que de x. Nous pourrions chercher une solution approche
de ce problme par discrtisation de y (x) et y (x) comme nous lavons fait au paragraphe
prcdent, ce qui nous conduirait la rsolution dun systme algbrique non linaire
en les inconnues yi . Une autre possibilit consiste rsoudre une suite de problmes de
Cauchy.
Remplaons, dune part, lquation du second ordre par un systme de deux quations
du premier ordre en posant y(x) = u1 (x) et y (x) = u2 (x) ; et, dautre part, la deuxime
condition aux limites par une condition initiale y (a) = C, o C est une constante dterminer de faon avoir y(b) = yf .
Pour calculer C, nous allons procder par approximations successives, ce qui nous amnera rsoudre une suite (k = 1, 2, . . . ) de problmes de Cauchy du type
66

u1 (x) = u2 (x)
u2 (x) = a(x, u1 (x), u2 (x)).u2 (x) b(x, u1 (x), u2 (x)).u1 (x) c(x, u1 (x), u2 (x))
u1 (a) = y0
u2 (a) = Ck

Exemple 7 - Problme linaire


Soit le probme aux conditions aux limites
y (x) + y (x) + sin x.y(x) cos x = 0
y(0) = 1
y() = 1

x [0, ]

Ce problme est linaire et nous le remplaons par les problmes de Cauchy


u1 (x) = u2 (x)
u2 (x) = u2 (x) sin x.u1 (x) + cos(x)
u1 (0) = 1
u2 (0) = Ck k = 1, 2, . . .
La stratgie que nous utilisons pour dterminer une suite de Ck convergeant vers la valeur
permettant de raliser la condition u1 () = y() = 1 est fort simple, nous procdons
par interpolation :
1)
2)
3)
4)

on choisit une valeur C1 et on calcule u1,1 ()


si u1,1 () = 1 le problme est rsolu
si u1,1 () 6= 1 on se donne une valeur C2 et on calcule u1,2 ()
si u1,2 () = 1 le problme est rsolu
C2 C1
5) si u1,2 () 6= 1 on choisit C3 = C1 + (u1 () u1,1 )
et on calcule u1,3 ()
u1,2 u1,1
Sauf cas pathologique, lapproximation obtenue avec C3 fournit la solution "exacte" du
problme, cest dire des valeurs yn quasiment gales y(xn ) avec x [0, pi], y(0) = 1 et
y() = 1.
En effet, comme le problme est linaire, la deuxime condition aux limites dpend linairement du choix de C et par interpolation linaire partir des couples de valeurs
(C1 , u1,1 ) et (C2 , u1,2 ) on obtient la valeur C3 de C qui permet de satisfaire la deuxime
condition aux limites.
Dans le cas dun problme non linaire la procdure dinterpolation devra tre rpte
jusqu ce que, pour une certaine valeur de Ck , la deuxime condition aux limites soit
vrifie dans des limites acceptables, si possible...

67

Le programme ci-dessous et les fonctions odebut et uprime qui laccompagnent permettent


de rsoudre le problme linaire de lexemple 7. Les solutions approches sont reprsentes
la figure 3.17.
% PROGRAMME
C1=-12; Y1=odebut(C1,C_1);
C2= 8;
Y2=odebut(C2,C_2);
YFINAL=-1; C3=C1+(YFINAL-Y1)*(C2-C1)/(Y2-Y1);
odebut(C3,C_3); grid on
%----------------------------------------------------% FONCTIONS
%
function Y_final_appx=odebut(C,texte)
% Rsolution dun problme aux limites par tir au but
figure(1); hold on; grid on; axis([0 pi -10 10])
x0=0; xfin=pi; y0=1; yfin=-1; uprimedebut=C;
xspan = [x0 xfin]; u0 = [y0; uprimedebut];
[t,y] = ode45(@uprime,xspan,u0);
plot(t,y(:,1),LineWidth,2)
% Aprs chaque tir on fournit la valeur darrive en x=pi
% Le but est datteindre la bonne cible.
% Ici cest le point xfin=pi, yfin=-1 (point rouge)
gtext(num2str(y(end,1)),FontSize,14)
gtext(texte,FontSize,14)
titre=Rsolution dun problme aux limites par tir au but;
title(titre,FontSize,14);
xlabel(Position x,FontSize,14);
ylabel(Approximations successives de la solution y(x),FontSize,14);
plot(xfin,yfin,or,LineWidth,3)
Y_final_appx=y(end,1);
% ----------------------------------------------------------------------function dydx = uprime(x,u)
a=inline(1); b=inline(sin(x)); c=inline(cos(x));
dydx = [ u(2)
-a(x)*u(2)-b(x)*u(1)+c(x) ];

68

Rsolution dun problme aux limites par tir au but


Approximations successives de la solution y(x)

10
8
6

4
2

1.5551

1
C

2.4031

6
8
10

0.5

1.5

2.5

Position x

Figure 3.17 Approximations de la solution du problme aux limites linaire de lexemple


7. Une seule interpolation calcule partir de deux valeurs de C suffit pour obtenir la
solution "exacte".
Exemple 8 - Problme non linaire
La procdure dinterpolation utilise pour rsoudre le problme linaire de lexemple 7 peut
galement tre applique dans le cas de problmes non linaires. Nous lillustrons ici pour
le problme suivant
y (x)
+ cos x = 0 avec x [0, 3]
1 + y 2 (x)
y(0) = 1 et y(3) = 2
y (x)

Les k = 1, 2, . . . problmes de Cauchy associs scrivent


u1 (x) = u2 (x)
u2 (x)
u2 (x) =
cos x
1 + u21 (x)
u1 (0) = y(0) = 1
u2 (0) = Ck
Le programme interpolodebut permet de rsoudre ce problme et on constate quil faut
faire une quinzaine ditrations pour atteindre une prcision de lordre 1014 . La figure
3.18 a t labore avec ce programme et montre les 18 approximations de la solution
quil calcule.

69

function interpolodebut
% Rsolution dun problme aux limites par tir et interpolation linaire
% YFINAL est la condition lextrmit droite du domaine soit en x=pi.
clc; clear; format long
xspan = [0 3*pi]; YFINAL=2;
C1=0.25; u0 = [1; C1]; [t,y] = ode45(@uprime,xspan,u0);
Y1=y(end,1); [C1 Y1]
plot(t,y(:,1),LineWidth,1.5); hold on
gtext(C_1,FontSize,14);
pause
C2=-0.25; u0 = [1; C2]; [t,y] = ode45(@uprime,xspan,u0);
Y2=y(end,1); [C2 Y2]
plot(t,y(:,1),LineWidth,1.5)
gtext(C_2,FontSize,14);
pause
col=b; LW=1.5;
Nmax=18;
for k=1:Nmax
if k==Nmax
col=r; LW=2;
end
C3=C1-(Y1-YFINAL)*(C1-C2)/(Y1-Y2); [t,y] = ode45(@uprime,xspan,[1;C3]);
Y1=Y2; Y2=y(end,1); C1=C2; C2=C3;
[C2 Y2]
plot(t,y(:,1),col,LineWidth,LW)
texte=[k= num2str(k)];
if k<=6 | k==8 | k==18
gtext(texte,FontSize,14)
end
pause
end
titre=Problme aux limites non linaire - Mthode de tir au but;
title(titre,FontSize,14)
xlabel(x,FontSize,14)
ylabel(Approximations successives de y(x) x \in [0,3\pi],FontSize,13)
grid on
function dydx = uprime(x,u)
dydx = [ u(2)
u(2)./(1+u(1).^2)-cos(x) ];

70

Problme aux limites non linaire Mthode de tir au but

Approximations successives de y(x) x [0,3]

20

k=1

15

10

k=2

k=4
k=6
k=18

k=8

10

k=5

15

20

k=3
C

25

10

Figure 3.18 Approximations de la solution du problme non linaire de lexemple 7.


Il faut faire 18 interpolations pour obtenir y(3) = 2.00000000000002. A partir de la
quinzime itration les courbes sont quasi confondues.

71

Table des matires


1 Rsolution dune quation F (x) = 0
1.1 Prliminaires . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Acclration de la convergence . . . . . . . . . . . . . . . . .
1.3 Mthode de dichotomie ( bissection ) . . . . . . . . . . . . .
1.3.1 Principe de la mthode de dichotomie . . . . . . . . .
1.3.2 Algorithme de la mthode de dichotomie . . . . . . .
1.3.3 Evaluation du cot de la mthode de dichotomie . . .
1.3.4 Avantages de la mthode de dichotomie . . . . . . . .
1.3.5 Inconvnients de la mthode de dichotomie . . . . . .
1.4 Mthode regula falsi ( fausse position ) . . . . . . . . . . . .
1.5 Mthode de la scante . . . . . . . . . . . . . . . . . . . . .
1.5.1 Principe de la mthode de la scante . . . . . . . . .
1.5.2 Algorithme de la mthode de la scante . . . . . . . .
1.5.3 Evaluation du cot de la mthode de la scante . . .
1.5.4 Avantages de la mthode de la scante . . . . . . . .
1.5.5 Inconvnients de la mthode de la scante . . . . . .
1.6 Mthode ditration (ou du point fixe) . . . . . . . . . . . .
1.6.1 Principe et algorithme de la mthode ditration . . .
1.6.2 Interprtation graphique de la mthode ditration . .
1.6.3 Justification de la mthode ditration . . . . . . . .
1.6.4 Convergence de la mthode ditration . . . . . . . .
1.6.5 Du choix de la fonction ditration g . . . . . . . . .
1.6.6 Evaluation du cot de la mthode ditration . . . . .
1.6.7 Avantages de la mthode ditration . . . . . . . . . .
1.6.8 Inconvnients de la mthode ditration . . . . . . . .
1.7 Mthode de Newton (ou de la tangente) . . . . . . . . . . .
1.7.1 Principe et algorithme de la mthode de Newton . . .
1.7.2 Interprtation gomtrique de la mthode de Newton
1.7.3 Newton avec ou sans complexes ? . . . . . . . . . . .
1.7.4 Racines multiples . . . . . . . . . . . . . . . . . . . .
1.7.5 Convergence de la mthode de Newton . . . . . . . .
1.7.6 Approximation de la drive . . . . . . . . . . . . . .
1.7.7 Evaluation du cot de la mthode de Newton . . . .
1.7.8 Avantages de la mthode de Newton . . . . . . . . .
1.7.9 Inconvnients de la mthode de Newton . . . . . . .
72

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

1
1
10
11
11
11
12
12
13
13
13
13
14
15
15
16
17
18
18
24
25
25
27
27
27
28
28
29
35
35
38
38
39
39
39

2 Intgration numrique

40

3 Equations diffrentielles ordinaires


3.1 Introduction . . . . . . . . . . . . . . . . . . .
3.2 Mthodes dEuler . . . . . . . . . . . . . . . .
3.2.1 Exemple 1 . . . . . . . . . . . . . . . .
3.3 Stabilit . . . . . . . . . . . . . . . . . . . . .
3.3.1 Exemple 2 . . . . . . . . . . . . . . . .
3.4 Schmas dintgration un pas . . . . . . . .
3.4.1 Retour lexemple 1 . . . . . . . . . .
3.5 Schmas dintgration pas multiples . . . . .
3.6 Systmes dquations diffrentielles ordinaires
du premier ordre . . . . . . . . . . . . . . . .
3.6.1 Exemple 3 - Simulation dune pidmie
3.6.2 Exemple 4 . . . . . . . . . . . . . . . .
3.7 Prudence et petits pas . . . . . . . . . . . . .
3.7.1 Exemple 5 . . . . . . . . . . . . . . . .
3.8 Problmes aux conditions aux limites . . . . .
3.8.1 Introduction . . . . . . . . . . . . . . .
3.8.2 Mthode des diffrences finies . . . . .
3.8.3 Exemple 6 . . . . . . . . . . . . . . . .
3.8.4 Mthode de tir au but . . . . . . . . .
3.8.5 Mthode de collocation . . . . . . . . .

73

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

41
41
42
43
48
49
51
52
55

. . . . . .
de grippe.
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

55
56
59
60
61
63
63
64
65
66
71

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

Table des figures


1.1
1.2

1.3
1.4
1.5
1.6
1.7

1.8
1.9
1.10
1.11
1.12
1.13
1.14
1.15

Evolution de lestimateur de la vitesse de convergence en fonction du nombre


de termes conservs dans la somme partielle qui dfinit la srie de leibnitz.
Evolution du nombre de termes quil faudrait ajouter la somme partielle
qui dfinit la srie de Leibnitz pour obtenir un chiffre prcis supplmentaire,
en fonction du nombre de termes n de cette somme. (Notez lchelle des
ordonnes : 104 ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La figure produite par le programme ci-dessus illustre une situation dans
laquelle la mthode du point fixe converge. . . . . . . . . . . . . . . . . . .
La figure produite par le programme ci-dessus illustre une situation dans
laquelle la mthode du point fixe cycle. . . . . . . . . . . . . . . . . . . . .
La figure produite par le programme ci-dessus illustre une situation dans
laquelle la mthode du point fixe diverge. . . . . . . . . . . . . . . . . . . .
Un zoom sur la figure prcdente permet de voir que ds la premire itration les valeurs de la suite xn scartent de la position du zro. . . . . . . .
Mthode de Newton ou de la tangente. Au voisinage de P, on assimile la
fonction F sa tangente. Son intersection Q avec laxe des x fournit une
approximation du zro Z. . . . . . . . . . . . . . . . . . . . . . . . . . . .
La mthode de Newton converge vers un zro de f (x) = 5 sin x log x 1
proche de 2.73. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Zoom de la figure 1.8. Au voisinage de P4 la tangente est quasi confondue
avec le graphe de f (x). . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Si on prend comme valeur de dpart x = 4.2, aprs 8 itrations le processus
semble converger vers x9 = 64.28649... . . . . . . . . . . . . . . . . . . . .
Si on prend comme valeur de dpart x = 4.2, aprs 54 itrations le processus
a converg vers 51.6881272625610. . . . . . . . . . . . . . . . . . . . . . . .
Un zoom sur lintervalle [63.9, 64.8] montre que la fonction ne sannule pas
dans cette zone. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Linspection de lintervalle [51.2, 52.1] montre o aboutit la suite des itrs
de Newton : en x55 = 51.6881272625610 . . . . . . . . . . . . . . . . . . . . .
Recherche du zro multiple de f (x) = (x )4 sin2 x. Interprtation graphique. Notez lchelle des ordonnes : 1014 ! . . . . . . . . . . . . . . . .
Recherche du zro multiple de f (x) = (x )4 sin2 x. Interprtation graphique : sous leffet du coefficent de relaxation L, la "tangente" nest plus
tangente ! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

74

9
20
21
23
23

28
31
31
32
33
33
34
36

37

3.1

3.2

3.3

3.4

3.5

3.6
3.7
3.8

3.9
3.10

3.11
3.12
3.13
3.14
3.15

3.16
3.17

Rsolution approche du problme de Cauchy pour divers pas dintgration.


La solution analytique y(t) = 3et/2 2 + t est reprsente en noir. La
solution approche obtenue avec N=100 est en rouge. . . . . . . . . . . .
Rsolution approche du problme de Cauchy, erreur relative pour trois
pas dintgration diffrents. On constate que lerreur maximum dcrot linairement avec le pas dintgration. . . . . . . . . . . . . . . . . . . . .
Les solutions approches par la mthode explicite sont en bleu et celles
obtenues par la mthode implicite sont en vert. On remarque que lune des
mthodes approche la solution par le bas et lautre par le haut. . . . . . .
Rsolution approche du problme de Cauchy, erreur relative pour trois
pas dintgration diffrents. Les courbes bleues correspondent la mthode
explicite et les rouges la mthode implicite. On constate la quasi symtrie
des courbes derreur et que le maximum de lerreur dcrot linairement
avec le pas dintgration h. . . . . . . . . . . . . . . . . . . . . . . . . . .
Instabilit de la mthode dEuler explicite. Lorsque le pas h est suffisamment petit, on ne distingue pas le graphe de la solution approche (en vert)
de celui de la solution analytique (en cyan). . . . . . . . . . . . . . . . .
Stabilit de la mthode dEuler implicite. Les diffrents pas utiliss sont les
mmes que sur la figure ptcdente. . . . . . . . . . . . . . . . . . . . . .
Solutions approches par la mthode de Crank-Nicolson, comparer avec
les figures 3.1, 3.3 et 3.9. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Rsolution approche du problme de Cauchy par la mthode de CrankNicolson. Le maximum de lerreur relative dcrot quadratiquement avec le
pas dintgration h. A comparer avec les figures 3.2, 3.4 et 3.10. . . . . .
Solutions approches par la mthode de Heun ou RK2, comparer avec les
figures 3.1, 3.3 et 3.7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Rsolution approche du problme de Cauchy par la mthode de Heun ou
RK2, erreur relative pour trois pas dintgration diffrents. Le maximum de
lerreur dcrot quadratiquement avec le pas dintgration h. A comparer
avec les figures 3.2, 3.4 et 3.8. . . . . . . . . . . . . . . . . . . . . . . . .
Modle de Kermack et McKendrick pour simuler lvolution dune pidmie
de grippe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Graphe fourni par ode3. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Erreurs absolues commises lors de la rsolution du problme de lexemple
5 par les procdures standard ode15s, ode23s et ode45 de Matlab. . . . .
Erreurs relatives commises lors de la rsolution du problme de lexemple
5 par les procdures standard ode15s, ode23s et ode45 de Matlab. . . . .
Erreurs relatives commises lors de la rsolution du problme de lexemple
5 par les procdures ode15s, ode23s et ode45 de Matlab en modifiant les
"tolrances". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Approximations de la solution du problme de lexemple 6. Les courbes
correspondant N = 32 et N = 64 sont quasi confondues. . . . . . . . .
Approximations de la solution du problme aux limites linaire de lexemple
7. Une seule interpolation calcule partir de deux valeurs de C suffit pour
obtenir la solution "exacte". . . . . . . . . . . . . . . . . . . . . . . . . .
75

. 45

. 45

. 47

. 47

. 50
. 50
. 52

. 53
. 54

. 54
. 58
. 60
. 61
. 62

. 62
. 66

. 69

3.18 Approximations de la solution du problme non linaire de lexemple 7.


Il faut faire 18 interpolations pour obtenir y(3) = 2.00000000000002. A
partir de la quinzime itration les courbes sont quasi confondues. . . . . . 71

76

Bibliographie
[1] Jean-Guy Dion and Rolland Gaudet. Mthodes dAnalyse Numrique : de la thorie
lapplication. MODULO, 1996.

77

Vous aimerez peut-être aussi