METODE NUMERICE DE SOLU|IONARE A ECUA|IILOR DIFEREN

Download Report

Transcript METODE NUMERICE DE SOLU|IONARE A ECUA|IILOR DIFEREN

CURS 6 METODE NUMERICE DE REZOLVARE A ECUATIILOR DIFERENTIALE

Introducere O ecuatie diferentiala poate sa nu posede solutie sau, chiar daca are solutie, nu totdeauna aceasta se poate explicita. In multe situatii, mai ales in cazul ecuatiilor diferentiale neliniare, trebuie sa ne consideram multumiti daca obtinem o aproximatie a solutiei ecuatiei diferentiale. In cele ce urmeaza, utilizand metode numerice, se vor obtine seturi de puncte care, atunci cand se utilizeaza discretizari suficient de fine se poate aproxima solutia ecuatiei diferentiale considerate, asa cum se prezinta in fig. 1.

ECUATII DIFERENTIALE DE ORDINUL 1 Forma generala a acestei ecuatii este: dy dx = f(x,y) dat fiind faptul ca ecuatiile diferentiale de ordin superior pot fi reduse la sisteme de ecuatii diferentiale de ordinul 1.

EXEMPLE 1) Ecuatia de miscare a unei particule de masa m într-un câmp de forte F(x): m d 2 dt x 2 = F(x)

dp dt = F(x) 2) Ecuatia diferentiala a fibrei medii deformate: d 2 w dx 2

= dw dx Intr-adevar, considerand ecuatia diferentiala: d n y d t n

 

a 0 a n y

a 1 a n y

   

a n

1 a n y

n

1

 

f

 

si introducand variabilele: y

x 1 , y

 

x 2 , y

 

x 3 ,

, y

n

1

 

x n

rezulta ca: y

 

x 1

 

x 2 , y

 

x 2

 

x 3 ,

, y

n

1

 

x n

1

 

x n In acest fel ecuatia diferentiala de ordinul n scrisa sub forma (1) se poate echivala cu urmatorul sistem de n ecuatii diferentiale de ordinul 1:

         

x

n   

x x x x

1 2 3       n  1   

x x x x

2 3 4 n

a

0

a

n

x

1 

a

1

x

2   

a

n ,

a

n  1

x a

n n 

f

 

.

a) METODA EULER (METODA LINIILOR POLIGONALE)

Aceasta este una dintre cele mai simple tehnici de solu\ionare numerica a ecuatiilor diferentiale, fiind cunoscuta si sub denumirea de metoda tangentelor.

Se considera ecuatia diferentiala (inclusiv conditia initiala aferenta): y

 

f

x , y

, y

  

y 0 Daca se considera pe axa Ox o diviziune echidistanta de pas h se poate gasi un punct (x 1 , y 1 ) = (x 0 +h, y 1 ) pe tangenta la curba ce reprezinta solutia ecuatiei diferentiale in punctul (x 0 , y 0 ), asa cum se prezinta in figura alaturata. Se poate scrie: unde: y 0

 

f

x 0 , y 0

 

x y 1 0

 

h

y

0 x 0

y 0

 

y 1

y 0

h y 0

.

Daca se noteaza x 0 +h = x 1 , atunci punctul de coordonate (x 1 , y 1 ) situat pe tangenta considerata reprezinta a aproximatie a punctului de coordonate (x 1 , y(x 1 )) situat pe curba ce reprezinta solutia ecuatiei diferentiale. Este evident faptul ca eroarea metodei este cu atat mai redusa cu cat valoarea pasului diviziunii considerate - h este mai mic.

Se poate construi astfel un proces iterativ: y n

1

y n

h y n

 

y n

h f

x n , y n

, x n

x 0

n h a carui reprezentare grafica se prezinta in figura alaturata.

Aproximarea solutiei ecuatiei diferentale

APLICATIA 1

Considerand ecuatia diferentiala: y

 

2 x y si conditia initiala y(1)=1, sa se obtina o aproximatie pentru a gasi valoarea lui y in punctul de abscisa x = 1.5, utilizand un pas h cu valorile 0.1, 0.05 si 0.01, apoi sa se calculeze si erorile relative raportate la valoarea exacta, cu patru zecimale.

Solutie Solutia analitica a ecuatiei diferentiale considerate este: y

  

e x 2

1

x

n

1.00

1.10

1.20

1.30

1.40

1.50

Tab. 1 Valorile obtinute pentru h = 0.10

y

n

1.0000

1.2000

1.4640

1.8154

2.2874

2.9278

Exact

1.0000

1.2337

1.5527

1.9937

2.6117

3.4904

Eroare

0.0000

0.0337

0.0887

0.1784

0.3244

0.5625

Eroare %

0.00

2.73

5.71

8.95

12.42

16.12

x

n

1.00

1.10

1.20

1.30

1.40

1.50

Tab. 2 Valorile obtinute pentru h = 0.05

y

n

1.0000

1.2155

1.5044

1.8955

2.4311

3.1733

Exact

1.0000

1.2337

1.5527

1.9937

2.6117

3.4904

Eroare

0.0000

0.0182

0.0483

0.0982

0.1806

0.3171

Eroare %

0.00

1.47

3.11

4.93

7.98

9.08

x

n

1.00

1.10

1.20

1.30

1.40

1.50

Tab. 3 Valorile obtinute pentru h = 0.01

y

n

1.0000

1.2298

1.5423

1.9723

2.5719

3.4197

Exact

1.0000

1.2337

1.5527

1.9937

2.6117

3.4904

Eroare

0.0000

0.0039

0.0104

0.0214

0.0398

0.0707

Eroare %

0.00

0.31

0.67

1.07

1.52

2.03

b) METODA EULER-HEUN

Aceasta metoda este cunoscuta si sub denumirea de metoda Euler imbunatatita, situatia fiind prezentata in figura de mai jos pentru primul pas de integrare. Procesul iterativ pentru solutionarea numerica este descris de relatia urmatoare: y n

1 y * n

1

 

f

x n , y n y n

h y n

h f

x n , y n .

  

2 f

x n

1 , y * n

1

,

Analizand figura se poate constata ca valoarea lui y 1 este mai apropiata de solutie decat valoarea obtinuta pentru y 1 * , ceea ce poate incadra aceasta metoda in clasa metodelor predictor-corector.

Intr-adevar, aceasta situatie se poate interpreta in felul urmator: Pasul predictor:

y 0

f , y

Pasul corector: y

y

1

 * 1 

y 0

 

h f

h f

x

x

0

0 ,

, y

y

0

0

 

2

x 1 * 1 In continuare, cu referire la ecuatia diferentiala considerata anterior, se prezinta rezultatele obtinute prin aplicarea acestei metode pentru diferiti pasi de integrare si programul folosit pentru solutionarea numerica.

Tab. 4 Valorile obtinute pentru h = 0.1

x

n 1.00

1.10

1.20

1.30

1.40

1.50

y

n 1.0000

1.2320

1.5479

1.9832

2.5908

3.4509

Exact

1.0000

1.2337

1.5527

1.9937

2.6117

3.4904

Eroare

0.0000

0.0017

0.0048

0.0106

0.0209

0.0394

Eroare %

0.00

0.14

0.31

0.53

0.80

1.13

x

n

1.00

1.10

1.20

1.30

1.40

1.50

Tab.5 Valorile obtinute pentru h=0.05

y

n

1.0000

1.2332

1.5514

1.9909

2.6060

3.4795

Exact

1.0000

1.2337

1.5527

1.9937

2.6117

3.4904

Eroare

0.0000

0.0004

0.0013

0.0029

0.0057

0.0108

Eroare %

0.00

0.04

0.08

0.14

0.22

0.31

x

n

1.00

1.10

1.20

1.30

1.40

1.50

Tab.6 Valorile obtinute pentru h = 0.01

y

n

1.0000

1.2337

1.5527

1.9936

2.6115

3.4899

Exact

1.0000

1.2337

1.5527

1.9937

2.6117

3.4904

Eroare

0.0000

0.0000

0.0000

0.0001

0.0002

0.0005

Eroare %

0.00

0.00

0.00

0.005

0.010

0.025

c) METODA DEZVOLTARII IN SERIE TAYLOR

Aceasta metoda nu prezinta o larga aplicabilitate deoarece, in principal, rezultatele sunt comparabile cu cele obtinute prin aplicarea metodei Euler-Heun in condi\iile unor calcule mai laborioase.

Asa cum se stie, dezvoltarea unei functii y(x) in jurul unui punct x = a are expresia: y

y

  

x 1

a !

y



 

x

a

2 2 !

 

Pentru a apropia expresia de mai sus de problema curenta, daca se considera cazul in care a = x n si x = x n +h, se obtine: y

x n

h n n h

y



 

h 2 2

 

Daca se presupune ca functia y(x) este solutia ecuatiei diferentiale: y

 

f

Oprind numai doi termeni din se poate scrie: y

x n

h

    

h

y

x n

h

n

f

x n , y

  

h Se observa faptul ca daca in ecuatia de mai sus se inlocuieste y(x n +h) cu y n+1 si y(x n ) cu y n se obtine formula ce caracterizeaza metoda Euler: y n

1

y n

h f

x n , y n

Oprind trei termeni si facand inlocuirile antementionate se obtine urmatoarea formula: y n

1

y n

y n

h

y n

h 2 Metoda poate fi considerata drept cheia de bolta a majoritatii metodelor de rezolvare numerica a ecuatiilor diferentiale.

d) METODE TIP RUNGE-KUTTA

Aceasta clasa de metode reprezinta una dintre cele mai folosite in abordarea numerica a ecuatiilor diferentiale, imbinand numarul relativ redus de operatii elementare cu acuratetea rezultatelor.

Metoda Runge-Kutta de ordinul II consta in ga[sirea constantelor a, b astfel incat expresia: y n

1

y n

a k 1

b k 2 cu: k 1

h k 2

h f f

 

x x n , y n n

 

h

, , y n

 

k 1 .

sa se apropie de dezvoltarea in serie Taylor pentru cat mai multi termeni posibili. Meritul principal al acestei clase de metode rezida deci in aceea ca se apropie de acuratetea unei dezvoltari in serie Taylor fara insa a fi nevoie sa se calculeze si derivatele de ordin superior.

Se fac urmatoarele observatii: a) Daca: a

b

1 , b

 

1 2 , b

 

1 2 atunci relatia anterioara reprezinta dezvoltarea in serie Taylor, oprind primii trei termeni, a functiei considerate.

b) Daca: a

1 2 , b

1 2 ,

 

1 , b

1 atunci relatia anterioara se reduce la expresia metodei Euler-Heun.

c) Se poate constata ca metoda Euler este de fapt o procedura Runge-Kutta de ordinul I.

Folosind aceleasi consideratii se determina astfel algoritmul de calcul si in cazul metodei Runge-Kutta de ordinul IV (se opresc primii patru termeni din dezvoltarea in serie Taylor):

y n

1

k 1

h f y n

x

n 1 6 , y n

k

, 1

2 k 2

2 k 3

k 4

, k 2

h f

 

x n

1 2 h , y n

1 2 k 1

 

, k 3

k 4

h h

1 f f

  

x x n n 2

h , y h , n

y k n 3

 

2 1 k 2

 

, In continuare se prezinta rezultatele numerice obtinute in cazul aplicarii acestei metode pentru rezolvarea ecuatiei diferentiale considerate anterior si programul folosit in acest scop.

x

n

1.00

1.10

1.20

1.30

1.40

1.50

Tab. 7 Valorile obtinute pentru h = 0.1

y

n

1.0000

1.2337

1.5527

1.9937

2.6116

3.4902

Exact

1.0000

1.2337

1.5527

1.9937

2.6117

3.4904

Eroare

0.0000

0.0000

0.0000

0.0000

0.0001

0.0002

Eroare %

0.00

0.00

0.00

0.00

0.0038

0.0076

Tab. 8 Valorile obtinute pentru h = 0.05

x

n

1.00

1.10

1.20

1.30

1.40

1.50

y

n

1.0000

1.2337

1.5527

1.9937

2.6117

3.4903

Exact

1.0000

1.2337

1.5527

1.9937

2.6117

3.4904

Eroare

0.0000

0.0000

0.0000

0.0000

0.0000

0.0001

Eroare %

0.00

0.00

0.00

0.00

0.00

0.0028

Tab. 9 Valorile obtinute pentru h = 0.01

x

n

1.00

1.10

1.20

1.30

1.40

1.50

y

n

1.0000

1.2337

1.5527

1.9937

2.6117

3.4903429

Exact

1.0000

1.2337

1.5527

1.9937

2.6117

3.4904

Eroare

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000571

Eroare %

0.00

0.00

0.00

0.00

0.00

0.0016

e) METODA MILNE

Aceasta este o metoda[ care lucreaza in doi pasi

.

Pasul predictor: y * n

1

y n

3

4 h 3 2 y n

 

y n

1

 

2 y n

2

y n

 

f y n

1

 

y n

2

 

f f

x

x n , y n

1 n

, y ,

x n

2 , y n

1 n

2

 

, .

, n

3

Pasul corector: y n

1

y n

1

y h 3 n

1

y

f

n

1

x

n

1 , 4 y n

y * n

1

 

y n

1

,

Se remarca faptul ca valorile pentru y 0 , y 1 , y 2 si y 3 trebuie cunoscute pentru demararea procesului iterativ. Acestea se pot calcula cu oricare dintre metodele anterioare, recomandandu-se insa ca acest calcul initial si se faca cu un nivel inalt de acuratete.

CONCLUZII

Aplicarea uneia sau alteia dintre aceste metode in vederea solutionarii unei probleme concrete implica o analiza atenta a erorilor induse, in vederea realizarii unui compromis acceptabil intre precizie si efortul de calcul cerut.