Académique Documents
Professionnel Documents
Culture Documents
Michael Tolley
Fvrier 2011
Chapitre 1
Rsolution dune quation F (x) = 0
1.1
Prliminaires
%
%
%
%
%
On
Le
On
On
On
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
1. Si K1 (x) = lim
r xn+1
6= 0
(r xn )p
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
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)
et ainsi de suite...
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 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
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
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
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
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)
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
1.3.2
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
1.3.4
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
1.4
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
xn+1 xn
, pour n = 0, 1, 2, . . .
f (xn+1 ) f (xn )
% 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
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
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
15
1.5.5
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
1.6
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
1.6.1
1.6.2
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)
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
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
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
1.6.3
3. Si max |g (x)| = K < 1 et si, de plus, x0 I et {xn } est dfinie par litration
xI
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].
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
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) = =
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))
26
1.6.6
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
1.6.8
27
1.7
1.7.1
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
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)
(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
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
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
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
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
10
12
10
20
30
40
50
60
70
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
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
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)
35
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
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
14
10
f = (x ) sin x
12
0.5
1.5
2.5
3.5
37
1.7.5
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, . . .
(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
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
1.7.9
39
Chapitre 2
Intgration numrique
VOIR FICHIER WORD
40
Chapitre 3
Equations diffrentielles ordinaires
3.1
Introduction
y(a) = y0 .
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].
R t1
t0
f (t, y(t))dt
R t1
t0
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
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
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, . . .
R t1
t0
f (t, y(t))dt
R t1
t0
46
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
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
y(0) = y0 .
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 :
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
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
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
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
y(a) = y0 .
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
y(t)
52
Erreur relative
x 10
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
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)
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
h=0.04
54
3.5
R tn+2
tn
n = 1, 2, . . .
avec h = tn+1 tn
3.6
Problme de Cauchy
Le problme de Cauchy scrit comme dans le cas dune seule quation (cas scalaire) :
dy
(t)
dt
y(a) = y0 .
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
tk+1 = tk + h
3.6.1
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
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
%
% 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)
S I R (nombre dindividus)
8000
Sains
7000
6000
5000
4000
Guris
3000
2000
1000
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
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
25
20
solution u(x)
15
10
10
15
20
10
20
30
40
50
60
70
80
90
100
Position x
3.7
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
ode15s
4
ode23s
0
ode45
10
15
Position x
61
0.08
0.06
ode23s
0.04
ode15s
0.02
ode45
0.02
10
15
Position x
x 10
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
62
3.8
3.8.1
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
63
3.8.2
f (x) = lim
u(xn ) u(xn h)
u(xn + h) u(xn )
h
h
2h
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
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 =
0.5
1.5
2.5
3.5
3.8.4
x [a, b]
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
x [0, ]
67
68
10
8
6
4
2
1.5551
1
C
2.4031
6
8
10
0.5
1.5
2.5
Position x
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
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
71
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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
73
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
41
41
42
43
48
49
51
52
55
. . . . . .
de grippe.
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
55
56
59
60
61
63
63
64
65
66
71
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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
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
. 45
. 45
. 47
. 47
. 50
. 50
. 52
. 53
. 54
. 54
. 58
. 60
. 61
. 62
. 62
. 66
. 69
76
Bibliographie
[1] Jean-Guy Dion and Rolland Gaudet. Mthodes dAnalyse Numrique : de la thorie
lapplication. MODULO, 1996.
77