Mots clés Méthode d'Euler, de Heun, Runge Kutta, équation aux dérivées partielles, script Matlab® Galilée disait ” Le livre de la nature est écrit en langage
Previous PDF | Next PDF |
[PDF] TD-TP matlab sur la résolution dEDO, Méthodes à un pas
22 Ordre de la méthode d'Euler On suppose que f est de classe C1 et on note z une solution exacte de (1) avec
[PDF] Résolution déquations différentielles avec Matlab
Tracer les courbe des résultats obtenus par cette méthode, par la méthode d' Euler ainsi que la solution exacte Faire varier le pas de temps et regarder comment
[PDF] Méthodes numériques de résolution déquations différentielles
numériques commises par la machine En Matlab, on peut facilement programmer la méthode d'Euler avec la fonction suivante : function [t,y] = Euler(f, tmin,tmax
[PDF] MATLAB 9
3) Tracer l'erreur au cours du temps entre la solution calculée par la méthode d' Euler explicite et la solution de référence (ou la solution exacte) pour chacune
[PDF] Matlab à lagreg - ENS Rennes
15 nov 2010 · La fonction matlab f m correspondante est la suivante function yp=f(t,y) bien qu' une pre- mière version de la méthode d'Euler est la suivante
[PDF] Résolution numérique des équations différentielles - univ-biskra
Mots clés Méthode d'Euler, de Heun, Runge Kutta, équation aux dérivées partielles, script Matlab® Galilée disait ” Le livre de la nature est écrit en langage
[PDF] TP - Méthodes numériques - Corrigé
Écrire une variante de la fonction Newton précédente pour prendre en compte ces deux arguments supplémentaires • Comparer la méthode d'Euler explicite et la
[PDF] Matlab - Département dinformatique et de recherche opérationnelle
Calculer pour en utilisant la méthode d'Euler à l'ordre 1 (calcul manuel) • Calculer, en utilisant un algorithme dans Matlab, la solution de l'équation différentielle
[PDF] Résolution numériques des équations différentielles - II
étudier expérimentalement la stabilité de la méthode d'Euler pour une équation raide rajouter trois fonctions matlab (ou scilab) au programme précédent :
[PDF] méthode d'évaluation d'un projet
[PDF] méthode d'évaluation pédagogique
[PDF] methode d'extraction d'huile essentielle pdf
[PDF] méthode d'extraction de l'or pdf
[PDF] méthode d'inventaire floristique
[PDF] methode de bessel
[PDF] methode de calcul des couts controle de gestion
[PDF] méthode de cardan démonstration
[PDF] methode de composition ecrite
[PDF] méthode de composition histoire
[PDF] méthode de composition militaire
[PDF] méthode de conservation des aliments tableau
[PDF] méthode de contraception : le diaphragme
[PDF] méthode de correction
Cours complet est disponible sur mon site web : http://sites.univ-biskra.dz/kenouche/
Chapitre
2R´esolution num´eriquedes´equations diff´erentiellesMaster Physique
SAMIRKENOUCHE- D´EPARTEMENT DESSCIENCES DE LAMATI`ERE- UMKB M ´ETHODESMATH´EMATIQUES ETALGORITHMES POUR LAPHYSIQUE R´esum´e
Dans ce chapitre, il sera question de la r
´esolution num´erique des´equations diff´erentielles. Les m´ethodes num´eriques abord´ees sont dites`a un pas, car le calcul dey(xn+1)ne r´eclame que la valeur dey(xn)`a l"instant
pr´ec´edent. Une m´ethode`a deux pasutilisera`a la foisy(xn)ety(xn1). Nous nous bornerons aux m´ethodes
num´eriques d"Euler, de Heun, de Crank-Nicolson et de Runge-Kutta classique d"ordre 4. Dans la derni`ere section,
on abordera la r´esolution d"une´equation aux d´eriv´ees partielles par la m´ethode des diff´erences finies en deux
dimensions. Par ailleurs, la programmation de ces algorithmes sera conduite par le biais de scripts Matlab
r.Mots cl
´es
M´ethode d"Euler, de Heun, Runge Kutta,´equation aux d´eriv´ees partielles, script Matlabr.
Galil ´ee disait " ... Le livre de la nature est´ecrit en langage math´ematique "Table des mati
`eresI Introduction1
I-A Probl
`eme de Cauchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
I-B M´ethodes d"Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
I-C Erreur th
´eorique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
I-D Stabilit
´e des sch´emas num´eriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
I-E M´ethode de Heun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
I-F M´ethode de Crank - Nicolson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
I-G M´ethode de Runge-Kutta, d"ordre 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
II´Equations diff´erentielles d"ordren12
III Diff
´erences finies15
III-A En dimension 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
III-A1 Probl
`eme non-lin´eaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26III-B En dimension 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
I.INTRODUCTIONU
Ne´equation diff´erentielle est une´equation dont l"inconnue est une fonctiony(x). La forme g´en´erale d"une
telle´equation s"´ecrit :
f(y(n);y(n1);y(n2);:::;y(1);y;x) ='(x)(1)Avec,y(n)est la ni`eme d´eriv´ee de la fonctionyet'(x)d´esigne le second membre de l"´equation diff´erentielle.
Dans le cas o
`u'(x) = 0, on dira que l"´equation diff´erentielle est homog`ene. L"existence d"une solution unique de
l"´equation diff´erentielle est tributaire de l"imposition de certaines conditions initiales sury(x)et ses d´eriv´ees. Dans
l"´equation (1), les conditions initiales sont les valeurs dey(a);y(1)(a);y(2)(a);:::;y(n)(a). Cependant, il faut noter
S. Kenouche est docteur en Physique de l"Universit ´e de Montpellier et docteur en Chimie de l"Universit´e de B´ejaia.Site web : voir
http://www .sites.univ-biskra.dz/kenoucheVersion am
´elior´ee et actualis´ee le 09.11.2018.
1Cours complet est disponible sur mon site web : http://sites.univ-biskra.dz/kenouche/@ SAMIR KENOUCHE2
que tr`es souvent la solution analytique n"existe pas, et on doit par cons´equent approcher la solution exactey(x)
par des m´ethodes num´eriques.
A. Probl
`eme de CauchyLe probl
`eme de Cauchy consiste`a trouver une fonction continˆument d´erivableu:t2R+!u(t)2Rv´erifiant :
y0(t) =f(t;y(t)); t >0 y(0) =y0(2)La premi
`ere´equation est une´equation diff´erentielle et la deuxi`eme relation exprime une condition de Cauchy
ou condition initiale. D ´efinition: soitf:IR7!Rune fonction donn´ee, s"il existe une constanteL >0telle que : jf(t;u)f(t;v)j Ljuvj(3)8u;v2Ret8t2Ialorsfest dite lipschitzienne de rapport L surIRou simplement L-lipschitzienne.
Th´eor`eme: sifest continue surIRet L-lipschitzienne par rapport`a sa deuxi`eme variabley(t)alors le
probl `eme de Cauchy admet une solution unique surI,8u(0)2R.Remarque: Dans ce qui suit, la variabletsera syst´ematiquement remplac´ee par la variablex. Le formalisme
math´ematique demeure inchang´e.
B. M´ethodes d"Euler
Afin d"atteindre la solutiony(x), sur l"intervallex2[a;b], on choisitn+1points dissemblablesx0;x1;x2;:::;xn,
avecx0=aetxn=bet le pas de discr´etisation est d´efini parh= (ba)=n. La r´esolution num´erique consiste`a
discr ´etiser l"axe des abscisses suivantxn=x0+hn(n2N). Ensuite on chercherauncomme approximation deyau pointxn, soity(xn). Ainsi l"ensemble des approximations successivesfu0;u1;u2;:::;ung, o`u tout simplement
fungn2N, constitue la solution num´erique. Ces m´ethodes sont it´eratives donc la suitefungn2Ndoitˆetre initialis´ee
afin de calculer ses successeurs. Soit l"´equation diff´erentielle :
y0=f(x;y(x))(4)
Trouver la solution de cette
´equation revient`a calculer l"int´egrale def(x;y(x))entre les bornesxnetxn+1, soit : Z xn+1 x nf(x;y(x)) =y(xn+1)y(xn)(5)Cette int
´egrale s"´ecrit en fonction des approximationsun+1etun: Z xn+1 x nf(x;y(x)) =un+1un(6)Par cons
´equent, en fonction de la m´ethode d"int´egration utilis´ee afin de r´esoudre l"int´egrale (terme de gauche),
on obtient un sch´ema num´erique donn´e. En utilisant par exemple la m´ethode des rectangles`a gauche, on obtient
le sch´ema num´eriqued"Euler progressif:
u0=y(x0) =y0 u n+1un=hf(xn;un)avecn2N(7)En utilisant la m
´ethode des rectangles`a droite, on obtient le sch´ema num´eriqued"Euler r´etrograde: u0=y(x0) =y0 u n+1un=hf(xn+1;un+1)avecn2N(8)Cours complet est disponible sur mon site web : http://sites.univ-biskra.dz/kenouche/@ SAMIR KENOUCHE3
Avec la m
´ethode du point milieu, on aura le sch´ema num´eriqued"Euler modifi´e: 8< :u0=y(x0) =y0
u n+1=2'un+h2 f(xn;un) u n+1un=hf(xn+h2 ;un+12 )avecn2N(9)Exemple num
´erique
Soit`a r´esoudre num´eriquement l"´equation diff´erentielle :2y0=xyavecy(0) = 1. On utilisera`a cet effet le
sch´ema num´erique d"Euler r´etrograde :
u n+1=un+hxn+1un+122un+1=2un+hxn+1hun+1
u n+1=2un+hxn+12 +h (10)Avecxn=x0+nhetxn+1=x0+(n+1)h. On discr´etise l"axe des abscisses suivant 10 noeuds sur un intervalle
[0 1]. Le pas de discr´etisation esth= (10)=10)h= 0:1et la condition initiale esty(x0= 0) = 1 =u0.
Nous avons appliqu
´e le sch´ema num´erique ci-dessus pour dix approximations : u1=2u0+hx12 +h
;avech= 0:1 u2=2u1+hx22 +h
;avech= 0:1 u3=2u2+hx32 +h
;avech= 0:1 u4=2u3+hx42 +h
;avech= 0:1 u10=2u9+hx102 +h
;avech= 0:1TABLEI: M´ethode d"Eulernx
nu n0.00000.00001.00001.00000.10000.9524
2.00000.20000.9118
3.00000.30000.8779
4.00000.40000.8504
5.00000.50000.8289
6.00000.60000.8133
7.00000.70000.8031
8.00000.80000.7982
9.00000.90000.7983
10.00001.00000.8031
Cours complet est disponible sur mon site web : http://sites.univ-biskra.dz/kenouche/@ SAMIR KENOUCHE4
Ci-dessous le script Matlab
r:clc;clearall;closeall; %SamirKenouche-Le15/11/2018 %EULERIMPLICITE:y"=(x-y)/2 %SCHEMANUMERIQUE:Un+1=Un+F(Xn+1,Un+1) a=0;b=1;n=10;h=(b-a)/n;xn=a:h:b; forit=1:n-1 un(it+1)=(1/(2+h)) *(2*un(it)+h *xn(it)); end sol_exacte=3. *exp(-xn/2)+xn-2;figure("color",[111]); plot (xn(1: end -1),un, o b );holdon;plot(xn,sol_exacte,"-ro"); xlabel x );ylabel("y"); Tr`es souvent pour des´equations diff´erentielles ayant des formules math´ematiques compliqu´ees, il sera difficile de
retrouver analytiquement le sch ´ema num´erique. Dans ce cas il serait judicieux d"appliquer explicitement la formule d"Euler. Ci-dessous, le script Matlab rcorrespondant.clc;clearall;closeall; %SamirKenouche-Le15/11/2018 %FORMULED"EULER-Eq:y"=(x-y)/2 %SCHEMANUMERIQUE:Un+1=Un+F(Xn,Un) a=0;b=1;n=10;h=(b-a)/n;xn=a:h:b; forit=1:n-1 un(it+1)=un(it)+h *dy(xn(it),un(it)); end sol_exacte=3. *exp(-xn/2)+xn-2;figure("color",[111]); plot (xn(1: end -1),un, o b );holdon;plot(xn,sol_exacte,"-ro"); xlabel x );ylabel("y");C. Erreur th
´eorique
La convergence des deux sch
´emas d"Euler est d"ordre un par rapport`ah:
e n=ju(xn)unj=O(h)Cela signifie que si je divise par deux le pash, l"erreur sera divis´ee par deux´egalement. Dans cette configuration
le temps de calcul est multipli´e par deux.
Cours complet est disponible sur mon site web : http://sites.univ-biskra.dz/kenouche/@ SAMIR KENOUCHE5
Th´eor`eme: sifest continue surIR, L-lipschitzienne par rapport`a sa deuxi`eme variable ety(x)2 C2surI
alors l"erreuren=u(xn)uncommise au point(xn;un)est major´ee par : jenj (eL(ba)1)h2Lmaxx2Ijy(x)(2)j(11)Avecaetbsont respectivement les bornes inf´erieure et sup´erieure d"int´egration. Afin de calculer cette erreur,
soit le probl `eme de Cauchy suivant : y0(x) =y(x) + 1x2R y(0) = 1(12) 1)Montrer que fest L-lipschitzienne.
2)Calculer l"erreur th
´eorique de la m´ethode d"Euler pour un pash= 0:1.Tenant compte de (3), il vient :
jf(x;u)f(x;v)j=jx+uxvj =juvj )L= 1Evaluons l"erreur th´eorique donn´ee par (11), nous avonsy00(x) = 2ex. Cette seconde d´eriv´ee est maximale pour
x= 1)y00(1) = 2e1= 5:4366: jenj (e1(10)1)h215:4366210:10:4665
D. Stabilit
´e des sch´emas num´eriques
Avant d"entamer la discussion sur la notion de stabilit ´e, il a´et´e jug´e judicieux d"introduire un bref rappel sur les suites. Soitunune suite g´eom´etrique de termeu0et de raisonr. Nous avons8n2N:un=u0r:Sir >0)limn!+1un= +1siu0> r
lim n!+1un=1siu0< rSijrj<1)limn!+1un= 0
Sir= 1)limn!+1un=u0
Sir 1)limn!+1un@
Dans ce qui suit on se propose d"
´etudier la stabilit´e des sch´emas d"Euler, progressif et r´etrograde sur l"´equation
diff´erentielle :
y0(x) =y(x) >0 y(0) =y0(13)La solution de ce probl
`eme de Cauchy est triviale, soit :y(x) =y0e xainsi : lim x!+1y(x) = 0 (P1)Les sch
´emas num´eriques d"Euler permettent de calculer les approximationsfung2N. Nous souhaitons v´erifier la
propri ´et´eP1pour les approximationsfu1;u2;u3;:::;ung. Autrement dit on cherche : lim n!+1un= 0Cours complet est disponible sur mon site web : http://sites.univ-biskra.dz/kenouche/@ SAMIR KENOUCHE6
Commenc¸ons par le sch
´ema d"Euler progressifun+1=un+hf(xn;un), ce qui donne : u n+1= (1 h)un u1= (1 h)u0
u2= (1 h)u1= (1 h)2u0
En g´en´eralisant on obtient la suite g´eom´etrique :un+1= (1 h)nu0de raison(1 h)et de premier terme
u0. Cherchons la propri´et´eP1:
lim n!+1un= 0, j1 hj<1, h <2,h <2 Ainsi, la convergence de cette suite est conditionn´ee parh <2
. Si nous prenons par exempleh >2 la suitedivergera, ce qui contredit la solution exactey(x). Examinons d´esormais le sch´ema d"Euler r´etrograde. De fac¸on
analogue que pr´ec´edemment on aura :
u n+1=un11 + h =u011 + h n+1Cherchons la propri
´et´eP1:
lim n!+1un+1= 0,11 + h<1Ce qui est toujours v
´erifi´e8h. Par cons´equent il n"existe aucune condition sur la pas de discr´etisation, contrai-
rement au sch ´ema progressif. Ainsi, le sch´ema r´etrograde est inconditionnellement stable. E. M´ethode de Heun
La M´ethode de Heun est une version am´elior´ee de celle d"Euler. L"erreur sur le r´esultat g´en´er´e par cette m´ethode
est proportionnelle`ah3, meilleur que celle de la m´ethode d"Euler. N´eanmoins, cette m´ethode r´eclame une double
evaluation de la fonctionf. (u0=y(x0) =y0 u n+1=un+h2 ff(xn;un) +f(xn;un+hf(xn;un))gavecn2N(14)Le sch
´ema num´erique de cette m´ethode r´esulte de l"application de la formule de quadrature du trap`eze. Notons
egalement que la m´ethode de Heun fait partie des m´ethodes de Runge-Kutta explicites d"ordre deux. Afin d"illus-
trer le fonctionnement de cette m´ethode, reprenant l"´equation diff´erentielle de l"exemple num´erique pr´ec´edent et
cherchons la formule analytique correspondante : u n+1=un+h2 xnun2 +h2 0 B B@x n u n+hxnun2 2 1 C CA u n+1=un+h2 xnun2 +h2 0 B B@x n2un+hxnhun2 2 1 C CA u n+1=un+h2 xnun2 +h22xn2unhxn+hun4
Finalement :
u n+1=4hh28 x n+84h+h28 u n(15)Cours complet est disponible sur mon site web : http://sites.univ-biskra.dz/kenouche/@ SAMIR KENOUCHE7
Ci-dessous le script Matlab
r:clc;clearall;closeall; %SamirKenouche-Le15/11/2018 %Heun-Eq:y"=(x-y)/2 a=0;b=1;n=10;h=(b-a)/n;xn=a:h:b; forit=1:n-1 un(it+1)=((4 *h-h.ˆ2)/8) *xn(it)+((8-4 *h+h.ˆ2)/8) *un(it); end sol_exacte=3. *exp(-xn/2)+xn-2;figure("color",[111]); plot (xn(1: end -1),un, o b );holdon;plot(xn,sol_exacte,"-ro"); xlabel x );ylabel("y");Comme pr
´ec´edemment, cette fac¸on de proc´eder n"est faisable que si la formule math´ematique, d´ecoulant du
sch´ema num´erique, est relativement simple. Il est ainsi plus pertinent d"appliquer explicitement la formule de
Heun. Ci-dessous, le script Matlab
rcorrespondant.clc;clearall;closeall; %SamirKenouche-Le15/11/2018 %Heun-Eq:y"=(x-y)/2 a=0;b=1;n=10;h=(b-a)/n;xn=a:h:b; fori=1:n-1 un(i+1)=un(i)+h/2 *(dy(xn(i),un(i))+dy(xn(i+1),... un(i)+h *dy(xn(i),un(i))));end sol_exacte=3. *exp(-xn/2)+xn-2;figure("color",[111]); plot (xn(1: end -1),un, o b );holdon;plot(xn,sol_exacte,"-ro"); xlabel x );ylabel("y");Ci-dessous, les r
´esultats num´eriques pour dix approximations :Cours complet est disponible sur mon site web : http://sites.univ-biskra.dz/kenouche/@ SAMIR KENOUCHE8
TABLEII: M´ethode de Heunnx
nu n0.00000.00001.00001.00000.10000.9537
2.00000.20000.9146
3.00000.30000.8823
4.00000.40000.8564
5.00000.50000.8367
6.00000.60000.8227
7.00000.70000.8144
8.00000.80000.8113
9.00000.90000.8133
F. M´ethode de Crank - Nicolson
Cette m
´ethode permet d"obtenir une plus grande pr´ecision (elles g´en`erent des solutions num´eriques plus proches
des solutions analytiques) que les deux m ´ethodes pr´ec´edentes. Le sch´ema num´erique est donn´e par : (y0=y(x0) =u0 u n+1=un+h2 ff(xn;un) +f(xn+1;un+1)gavecn2N(16)Cette m
´ethode et celle d"Euler r´etrograde sont inconditionnellement stables, moyennant certaines conditions de
r ´egularit´e sur les´equations`a r´esoudre. G. M´ethode de Runge-Kutta, d"ordre 4
La m´ethode de Runge-Kutta (classique) d"ordre 4, est une m´ethode explicite tr`es populaire. Elle calcule la valeur
de la fonction en quatre points interm