1 / 50

METODE NUMERICE DE SOLU|IONARE A ECUA|IILOR DIFEREN|IALE - PREZENTARE GENERAL{

METODE NUMERICE DE SOLU|IONARE A ECUA|IILOR DIFEREN|IALE - PREZENTARE GENERAL{. INTRODUCERE.

lilian
Télécharger la présentation

METODE NUMERICE DE SOLU|IONARE A ECUA|IILOR DIFEREN|IALE - PREZENTARE GENERAL{

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. METODE NUMERICE DE SOLU|IONARE A ECUA|IILOR DIFEREN|IALE - PREZENTARE GENERAL{

  2. INTRODUCERE • O ecua\ie diferen\ial[ poate s[ nu posede solu\ie sau, chiar dac[ are solu\ie, nu totdeauna aceasta se poate explicita. #n multe situa\ii, mai ales @n cazul ecua\iilor diferen\iale neliniare, trebuie s[ ne consider[m mul\umi\i dac[ ob\inem o aproxima\ie a solu\iei ecua\iei diferen\iale. #n cele ce urmeaz[, utiliz`nd metode numerice, se vor ob\ine seturi de puncte care, atunci c`nd se utilizeaz[ discretiz[ri suficient de fine pot aproxima solu\ia ecua\iei diferen\iale considerate, a]a cum se prezint[ @n fig. 1.

  3. Fig. 1 Discretizare @n vederea aproxim[rii solu\iei ecua\iei diferen\iale

  4. Se face men\iunea c[ @n cadrul acestui capitol interesul va fi direc\ionat numai @nspre ecua\ii diferen\iale de ordinul 1: dat fiind faptul c[ ecua\iile diferen\iale de ordin superior pot fi reduse la sisteme de ecua\ii diferen\iale de ordinul 1.

  5. #ntr-adev[r, consider`nd ecua\ia diferen\ial[: (1) ]i introduc`nd variabilele: (2) rezult[ c[: (3) #n acest fel ecua\ia diferen\ial[ de ordinul n scris[ sub forma (1) se poate echivala cu urm[torul sistem de n ecua\ii diferen\iale de ordinul 1: ,

  6. (4)

  7. METODA EULER Aceasta este una dintre cele mai simple tehnici de solu\ionare numeric[ a ecua\iilor diferen\iale, fiind cunoscut[ ]i sub denumirea de metoda tangentelor. Se consider[ ecua\ia diferen\ial[ (inclusiv condi\ia ini\ial[ aferent[): (5)

  8. Dac[ se consider[ pe axa Ox o diviziune echidistant[ de pas h se poate g[si un punct ( x1 , y1 ) = ( x0+h , y1 ) pe tangenta la curba ce reprezint[ solu\ia ecua\iei diferen\iale @n punctul ( x0 , y0 ), a]a cum se prezint[ @n fig. 2. Se poate scrie: (6)

  9. unde: Fig. 2 Modalitatea de g[sire a punctului (x1,y1) ce aproximeaz[ punctul (x1,y(x1)) .

  10. Fig. 3 Aproximarea solu\iei ecua\iei diferen\iale

  11. Dac[ se noteaz[ x0+h = x1, atunci punctul de coordonate ( x1 , y1 ) situat pe tangenta considerat[ reprezint[ a aproxima\ie a punctului de coordonate ( x1 , y(x1) ) situat pe curba ce reprezint[ solu\ia ecua\iei diferen\iale. Este evident faptul c[ eroarea metodei este cu at`t mai redus[ cu c`t valoarea pasului diviziunii considerate- h este mai mic. Se poate construi astfel un proces iterativ: (7) a c[rui reprezentare grafic[ se prezint[ @n fig. 3.

  12. Exemplu Consider`nd ecua\ia diferen\ial[: ]i condi\ia ini\ial[ y(1)=1, s[ se ob\in[ o aproxima\ie pentru a g[si valoarea lui y @n punctul de abscis[ x=1.5, utiliz`nd un pa]i h cu valorile 0.1, 0.05 ]i 0.01, apoi s[ se calculeze ]i erorile relative raportate la valoarea exact[, cu 4 zecimale. Solu\ie Solu\ia analitic[ a ecua\iei diferen\iale considerate este:

  13. xn yn Exact Eroare Eroare % 1.00 1.10 1.20 1.30 1.40 1.50 1.0000 1.2000 1.4640 1.8154 2.2874 2.9278 1.0000 1.2337 1.5527 1.9937 2.6117 3.4904 0.0000 0.0337 0.0887 0.1784 0.3244 0.5625 0.00 2.73 5.71 8.95 12.42 16.12 Tab. 1 Valorile ob\inute pentru h=0.1

  14. xn yn Exact Eroare Eroare % 1.00 1.10 1.20 1.30 1.40 1.50 1.0000 1.2155 1.5044 1.8955 2.4311 3.1733 1.0000 1.2337 1.5527 1.9937 2.6117 3.4904 0.0000 0.0182 0.0483 0.0982 0.1806 0.3171 0.00 1.47 3.11 4.93 7.98 9.08 Tab. 2 Valorile ob\inute pentru h=0.05

  15. xn yn Exact Eroare Eroare % 1.00 1.10 1.20 1.30 1.40 1.50 1.0000 1.2298 1.5423 1.9723 2.5719 3.4197 1.0000 1.2337 1.5527 1.9937 2.6117 3.4904 0.0000 0.0039 0.0104 0.0214 0.0398 0.0707 0.00 0.31 0.67 1.07 1.52 2.03 Tab. 3 Valorile ob\inute pentru h=0.01

  16. #n continuare se prezint[ programul cu ajutorul c[ruia au fost ob\inute rezultatele numerice prezentate mai sus, realizat @n Turbo Pascal v.7.0. Program ED;  var x0,t0,tfin,pas: real; i,nmax: integer; x,t: array[0..300] of real; fis: text;  {Definirea ecuatiei diferentiale} Function eul1(xe,te:real): real; begin eul1:=2*xe*te; end;

  17. begin Assign(fis,'eul3.dat'); {Nume fisier} Rewrite(fis); x0:=1.0; {Conditia initiala} t0:=1.0;tfin:=1.5; {Intervalul de integrat} pas:=0.01; {Pasul de integrare} nmax:=50; {Numarul de pasi} x[0]:=x0; t[0]:=t0;

  18. for i:= 0 to nmax-1 do {Incepere proces iterativ} begin {metoda EULER} t[i+1]:=t[i]+pas; x[i+1]:=x[i]+pas*eul1(x[i],t[i]); end; for i:= 0 to nmax do begin {Scriere fisier} writeln(fis,t[i]:6:2,' ',x[i]:6:4); end; Close(fis); end.

  19. METODA EULER-HEUN Aceast[ metod[ este cunoscut[ ]i sub denumirea de metoda Euler @mbun[t[\it[, situa\ia fiind prezentat[ @n fig. 4 pentru primul pas de integrare. Procesul iterativ pentru solu\ionarea numeric[ este descris de rela\ia urm[toare: (8)

  20. Fig. 4 Ilustrarea metodei Euler-Heun pentru primul interval al diviziunii considerate

  21. Analiz`nd fig. 4 se poate constata c[ valoarea lui y1 este mai apropiat[ de solu\ie dec`t valoarea ob\inut[ pentru y1*, ceea ce poate @ncadra aceast[ metod[ @n clasa metodelor predictor-corector. #ntr-adev[r, aceast[ situa\ie se poate interpreta @n felul urm[tor: Pasul predictor

  22. Pasul corector #n continuare, cu referire la ecua\ia diferen\ial[ considerat[ anterior, se prezint[ rezultatele ob\inute prin aplicarea acestei metode pentru diferi\i pa]i de integrare ]i programul folosit pentru solu\ionarea numeric[.

  23. xn yn Exact Eroare Eroare % 1.00 1.10 1.20 1.30 1.40 1.50 1.0000 1.2320 1.5479 1.9832 2.5908 3.4509 1.0000 1.2337 1.5527 1.9937 2.6117 3.4904 0.0000 0.0017 0.0048 0.0106 0.0209 0.0394 0.00 0.14 0.31 0.53 0.80 1.13 Tab. 4 Valorile ob\inute pentru h=0.1

  24. xn yn Exact Eroare Eroare % 1.00 1.10 1.20 1.30 1.40 1.50 1.0000 1.2332 1.5514 1.9909 2.6060 3.4795 1.0000 1.2337 1.5527 1.9937 2.6117 3.4904 0.0000 0.0004 0.0013 0.0029 0.0057 0.0108 0.00 0.04 0.08 0.14 0.22 0.31 Tab. 5 Valorile ob\inute pentru h=0.05

  25. xn yn Exact Eroare Eroare % 1.00 1.10 1.20 1.30 1.40 1.50 1.0000 1.2337 1.5527 1.9936 2.6115 3.4899 1.0000 1.2337 1.5527 1.9937 2.6117 3.4904 0.0000 0.0000 0.0000 0.0001 0.0002 0.0005 0.00 0.00 0.00 0.005 0.010 0.025 Tab. 6 Valorile ob\inute pentru h=0.01

  26. Program ED; var x0,t0,tfin,pas: real; i,nmax: integer; x,t: array[0..300] of real; fis: text; {Definirea ecuatiei diferentiale} Function eul1(xe,te:real): real; begin eul1:=2*xe*te; end;

  27. begin Assign(fis,'heu3.dat'); {Nume fisier} Rewrite(fis); x0:=1.0; {Conditia initiala} t0:=1.0;tfin:=1.5; {Intervalul de integrat} pas:=0.01; {Pasul de integrare} nmax:=50; {Numarul de pasi} x[0]:=x0; t[0]:=t0;

  28. for i:= 0 to nmax-1 do {Incepere proces iterativ} begin {metoda EULER-HEUN} t[i+1]:=t[i]+pas; x[i+1]:=x[i]+pas*eul1(x[i],t[i])/2+pas*eul1(x[i]+ pas*eul1(x[i],t[i]),t[i]+pas)/2; end; for i:= 0 to nmax do begin {Scriere fisier} writeln(fis,t[i]:6:2,' ',x[i]:6:4); end; Close(fis); end.

  29. METODA DEZVOLT{RII #N SERIE TAYLOR Aceast[ metod[ nu prezint[ o larg[ aplicabilitate deoarece, @n principal, rezultatele sunt comparabile cu cele ob\inute prin aplicarea metodei Euler-Heun @n condi\iile unor calcule mai laborioase. A]a cum se ]tie, dezvoltarea unei func\ii y(x) @n jurul unui punct x=a are expresia: (9)

  30. Pentru a apropia forma (9) de problema curent[, dac[ se consider[ cazul @n care a=xn ]i x=xn+h, se ob\ine: (10) Dac[ se presupune c[ func\ia y(x) este solu\ia ecua\iei diferen\iale: (11)

  31. Oprind numai doi termeni din (10) se poate scrie: (12)

  32. Se observ[ faptul c[ dac[ @n (12) se @nlocuie]te y(xn+h) cu yn+1 ]i y(xn) cu yn se ob\ine formula ce caracterizeaz[ metoda Euler: (13) .

  33. Oprind trei termeni @n (10) ]i f[c`nd @nlocuirile antemen\ionate se ob\ine urm[toarea formul[: (14) Metoda poate fi considerat[ drept cheia de bolt[ a majorit[\ii metodelor de solu\ionare numeric[ a ecua\iilor diferen\iale.

  34. METODE TIP RUNGE-KUTTA Aceast[ clas[ de metode reprezint[ una dintre cele mai folosite @n abordarea numeric[ a ecua\iilor diferen\iale, @mbin`nd num[rul relativ redus de opera\ii elementare cu acurate\ea rezultatelor. Metoda Runge-Kutta de ordinul II const[ @n g[sirea constantelor a, b, a, b astfel @nc`t expresia: (15)

  35. cu: (16) s[ se apropie de dezvoltarea @n serie Taylor pentru c`t mai mul\i termeni posibili. Meritul principal al acestei clase de metode rezid[ deci @n aceea c[ se apropie de acurate\ea unei dezvolt[ri @n serie Taylor f[r[ @ns[ a fi nevoie s[ se calculeze ]i derivatele de ordin superior.

  36. Se fac urm[toarele observa\ii: a) Dac[: atunci (15) reprezint[ dezvoltarea @n serie Taylor, oprind primii trei termeni, a func\iei considerate.

  37. b) Dac[: atunci (15) se reduce la expresia metodei Euler-Heun. c) Se poate constata c[ metoda Euler este de fapt o procedur[ Runge-Kutta de ordinul I.

  38. Folosind acelea]i considera\ii se determin[ astfel algoritmul de calcul ]i @n cazul metodei Runge-Kutta de ordinul IV (se opresc primii patru termeni din dezvoltarea @n serie Taylor): (17)

  39. xn yn Exact Eroare Eroare % 1.00 1.10 1.20 1.30 1.40 1.50 1.0000 1.2337 1.5527 1.9937 2.6116 3.4902 1.0000 1.2337 1.5527 1.9937 2.6117 3.4904 0.0000 0.0000 0.0000 0.0000 0.0001 0.0002 0.00 0.00 0.00 0.00 0.0038 0.0076 #n continuare se prezint[ rezultatele numerice ob\inute @n cazul aplic[rii acestei metode pentru rezolvarea ecua\iei diferen\iale considerate anterior ]i programul folosit @n acest scop. Tab. 7 Valorile ob\inute pentru h=0.1

  40. xn yn Exact Eroare Eroare % 1.00 1.10 1.20 1.30 1.40 1.50 1.0000 1.2337 1.5527 1.9937 2.6117 3.4903 1.0000 1.2337 1.5527 1.9937 2.6117 3.4904 0.0000 0.0000 0.0000 0.0000 0.0000 0.0001 0.00 0.00 0.00 0.00 0.00 0.0028 Tab. 8 Valorile ob\inute pentru h=0.05

  41. xn yn Exact Eroare Eroare % 1.00 1.10 1.20 1.30 1.40 1.50 1.0000 1.2337 1.5527 1.9937 2.6117 3.4903429 1.0000 1.2337 1.5527 1.9937 2.6117 3.4904 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000571 0.00 0.00 0.00 0.00 0.00 0.0016 Tab. 9 Valorile ob\inute pentru h=0.01

  42. Program ED; var x0,t0,tfin,pas: real; i,nmax: integer; x,t,k1,k2,k3,k4: array[0..300] of real; fis: text; {Definirea ecuatiei diferentiale} Function eul1(xe,te:real): real; begin eul1:=2*xe*te; end;

  43. begin Assign(fis,'rk43.dat'); {Nume fisier} Rewrite(fis); x0:=1.0; {Conditia initiala} t0:=1.0;tfin:=1.5; {Intervalul de integrat} pas:=0.01; {Pasul de integrare} nmax:=50; {Numarul de pasi} x[0]:=x0; t[0]:=t0;

  44. for i:= 0 to nmax-1 do {Incepere proces iterativ} begin {metoda RUNGE-KUTTA IV} t[i+1]:=t[i]+pas; k1[i]:=eul1(x[i],t[i]); k2[i]:=eul1(x[i]+pas/2*k1[i],t[i]+pas/2); k3[i]:=eul1(x[i]+pas/2*k2[i],t[i]+pas/2); k4[i]:=eul1(x[i]+pas*k3[i],t[i]+pas); x[i+1]:=x[i]+pas/6*(k1[i]+2*k2[i]+2*k3[i]+k4[i]); end;

  45. for i:= 0 to nmax do begin {Scriere fisier} writeln(fis,t[i]:6:2,' ',x[i]:6:4); end; Close(fis); end.

  46. METODA MILNE Aceasta este o metod[ care lucreaz[ @n doi pa]i. Pasul predictor (18) unde:

  47. (19)

  48. Pasul corector (20) unde: (21)

  49. Se remarc[ faptul c[ valorile pentru y0, y1, y2 ]i y3 trebuie cunoscute pentru demararea procesului iterativ. Acestea se pot calcula cu oricare dintre metodele anterioare, recomand`ndu-se @ns[ ca acest calcul ini\ial s[ se fac[ cu un nivel @nalt de acurate\e.

  50. CONCLUZII Aplicarea uneia sau alteia dintre aceste metode @n vederea solu\ion[rii unei probleme concrete implic[ o analiz[ atent[ a erorilor induse, @n vederea realiz[rii unui compromis acceptabil @ntre precizie ]i efortul de calcul cerut.

More Related