You are on page 1of 54

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Introducere n metoda Derivarea numerica. diferen telor nite.


Conf.dr.ing. Gabriela Ciuprina
Universitatea "Politehnica" Bucure sti, Facultatea de Inginerie Electrica, Departamentul de Electrotehnica
Suport didactic pentru disciplina Algoritmi Numerici, 2012

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Cuprins
numerice Formularea problemei derivarii Formule de derivare numerica Algoritmi numerici pentru derivarea func tiilor Derivate de ordin superior Derivate par tiale Metoda diferen telor nite - exemplul 1 (ODE) Metoda diferen telor nite - exemplul 2 (PDE, eliptic) Metoda diferen telor nite - exemplul 3 (PDE, hiperbolic)

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

derivatelor Importan ta evaluarii


rela tii utile pentru evaluarea unor marimi

i (t ) =

dqD dt dS dt

u (t ) =
evaluarea senzitivita tilor

F p se bazeaza pe interpolare. Ideea: derivarea numerica


ecua tii sau sisteme de ecua tii diferen tiale

Metoda diferen telor nite

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

numerice Formularea problemei derivarii


prin date sau prin cod) func Se da tia f : [a, b] IR (cunoscuta a derivatei f (x0 ), unde x0 [a, b]. Se cere evaluarea numerica Matematic: f ( x ) f ( x0 ) f (x0 ) = lim . (1) x x0 x x0 Nu se poate aplica aceasta formula:
nu se poate trece la limita erori de trunchiere; nedeterminare 0/0 probleme numerice cnd x este ales

prea aproape de x0 . Ideea: g (x ) interpolarea sau aproximarea func tiei s i g (x ) = dg df f (x ) = . dx dx (2)

Precizia cu care se face interpolarea sau aproximarea va determina precizia de calcul a derivatei numerice.

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

- cu eroare de ordinul 1 Formule de derivare numerica


pe por g - interpolare liniara tiuni.
35 f g 20 f 15

30

10 25 5 20 0 15 5 10

10

4 x

10

15

4 x

10

f s Func tia reala i interpolarea ei pe por tiuni g .

Aproximarea derivatei f cu valoarea g .

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

- cu eroare de ordinul 1 Formule de derivare numerica

de ordinul 1: Derivare progresiva


yk =

yk +1 yk , xk +1 xk

(3)

de ordinul 1: Derivare regresiva


yk =

yk yk 1 . xk xk 1

(4)

se Ordinul erorii de trunchiere specice acestei aproximari n serie Taylor. poate estima cu ajutorul dezvoltarii

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

- cu eroare de ordinul 1 Formule de derivare numerica


= (y yk Derivata progresiva k +1 yk )/(xk +1 xk )

f (x ) = f (xk ) + f (xk )(x xk ) + x = xk +1 yk +1 = yk + f (xk )(xk +1 xk ) +

f ( ) ( x xk ) 2 2!

(5)

f ( ) (xk +1 xk )2 , 2!

(6)

Eroarea de trunchiere f ( ) yk +1 yk f (xk ) = (xk +1 xk ), xk +1 xk 2! Pp. |f (x )| M2 h = xk +1 xk Notam | et |

(7)

M2 h, 2

(8)

Pe scurt: |et | =O(h), eroare de ordin 1


(1 = puterea lui h, sau gradul polinomului de interpolare folosit)

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

- cu eroare de ordinul 1 Formule de derivare numerica

= (y y yk Derivata regresiva k k 1 )/(xk xk 1 )

f (x ) = f (xk ) + f (xk )(x xk ) + O((x xk )2 ) x = xk 1 s i notnd xk xk 1 = h yk 1 = yk f (xk )h + O(h2 ), yk yk 1 f (xk ) = O(h). h |et | =O(h), eroare de ordin 1

(9)

(10) (11)

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

- cu eroare de ordinul 2 Formule de derivare numerica


n noduri. Dezavantajul g - lpp: nu este derivabila Remediu: cre sterea gradului polinomului de interpolare. Polinom de interpolare de grad 2:
g (x ) = + (x xk 1 )(x xk +1 ) (x xk )(x xk +1 ) yk 1 + yk + (xk 1 xk )(xk 1 xk +1 ) (xk xk 1 )(xk xk +1 ) (x xk 1 )(x xk ) yk +1 , (12) (xk +1 xk 1 )(xk +1 xk ) (x xk 1 ) + (x xk +1 ) (x xk ) + (x xk +1 ) yk 1 + yk + (xk 1 xk )(xk 1 xk +1 ) (xk xk 1 )(xk xk +1 ) (x xk 1 ) + (x xk ) yk +1 . (13) (xk +1 xk 1 )(xk +1 xk )

g (x )

= +

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

- cu eroare de ordinul 2 Formule de derivare numerica


Notam: h1 = xk xk 1 s i h2 = xk +1 xk . Evalund polinomul derivat (34) n xk se ob tine formula de de ordinul 2 derivare centrata
yk =

h2 h h2 h1 yk 1 1 yk + yk +1 . (14) h1 (h1 + h2 ) h1 h2 h2 ( h 1 + h 2 )

Evalund polinomul derivat (34) n punctele xk 1 s i xk +1 se ob tine formula de derivare progresiva de ordinul 2
yk 1 =

h1 + h 2 h1 2h 1 + h 2 yk 1 + yk yk +1 . (15) h1 ( h 1 + h 2 ) h1 h2 h2 ( h 1 + h 2 )

de ordinul 2 s i, respectiv, de derivare regresiva


yk +1 =

h1 + h 2 h 1 + 2h 2 h2 yk 1 yk + yk +1 . (16) h1 ( h 1 + h 2 ) h1 h2 h2 ( h 1 + h 2 )

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

- cu eroare de ordinul 2 Formule de derivare numerica


n cazul unui pas echidistant h1 = h2 = h Derivare centrata yk +1 yk 1 yk = 2h Derivare progresiva
yk 1 =

(17)

3yk 1 + 4y k yk + 1 2h

(18)

Derivare regresiva
yk +1 =

yk 1 4yk + 3yk +1 2h

(19)

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

- cu eroare de ordinul 2 Formule de derivare numerica


f (xk ) (x xk )2 +O((x xk )3 ). (20) 2! n punctele xk 1 s Evaluam i xk +1 (pp. pas echidistant) xk +1 xk = xk xk 1 = h, rezul ta: f (x ) = f (xk )+f (xk )(x xk )+ f (xk ) 2 h + O(h3 ), 2! f (xk ) 2 f (xk 1 ) = f (xk ) f (xk )h + h O(h3 ). 2! Scadem rela tiile f (xk +1 ) = f (xk ) + f (xk )h + f (xk +1 ) f (xk 1 ) = 2f (xk )h + O(h3 ), de unde (21) (22)

(23)

yk +1 yk 1 f (xk ) = O(h2 ). (24) 2h are eroarea de trunchiere de Formula de derivare centrata ordinul 2

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Formule de derivare numerica


Formulele de ordinul 2 sunt mai precise dect formulele de ordinul 1.
f panta acestei drepte = f(xk) panta acestei drepte = derivata regresiva de ordin 1 panta acestei drepte = derivata progresiva de ordin 1 panta acestei drepte = derivata centrata de ordin 2

(xk,yk)

(xk1,yk1)

(x

k+1

,y

k+1

a celor mai simple formule de derivare numerica (pas echidistant). Semnica tia geometrica

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Algoritmi numerici pentru derivarea func tiilor

func Este important modul n care este cunoscuta tia. Func tabelar (prin date) tia data
derivatele n punctele din tabel 1. se evalueaza derivata ntr-un punct oarecare, facnd o 2. se evalueaza pe por interpolare liniara tiuni a acestor valori. Func printr-un cod tia data formula 1. se alege pasul optim de derivare pentru o anumita de derivare numerica; derivata cu formula de derivare numerica 2. se evalueaza ntr-un punct oarecare.

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

tabelar Algoritmi numerici - func tie data


derivatele n punctele din tabel 1. Se evalueaza derivata ntr-un punct oarecare, facnd o 2. Se evalueaza pe por interpolare liniara tiuni a acestor valori.
procedur a pregatire_derivate( n, x , y , dy ) derivatele numerice n noduri ; calculeaza ; declara tii ntreg n ; numarul de puncte din tabel minus 1 tablou real x [n], y [n;] tabelul de valori, indici de la 0 tablou real dy [n] ; valorile derivatelor ; alte declara tii din stnga diferen ; la capatul te progresive de ordinul 2 h1 = x1 x0 h2 = x2 x1 dy0 = (2h1 + h2)/(h1(h1 + h2))dy0 + (h1 + h2)/(h1h2)dy1 h1/(h2(h1 + h2))dy2 din dreapta diferen ; la capatul te regresive de ordinul 2 h1 = xn1 xn2 h2 = xn xn1 dyn = h2/(h1(h1 + h2))dyn2 (h1 + h2)/(h1h2)dyn1 + (h1 + 2h2)/(h2(h1 + h2))dyn ; n nodurile interioare diferen te centrate de ordinul 2 pentru k = 1, n 1 h1 = xk xk 1 h2 = xk +1 xk dyk = h2/(h1(h1 + h2))dyk 1 (h1 h2)/(h1h2)dyk + h1/(h2(h1 + h2))dyk +1 rez = interpolare_lpp(n, x , dy , xcrt )

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

prin cod Algoritmi numerici - func tie data


Pasul de discretizare trebuie ales de utilizator. Eroarea de trunchiere este cu att mai mica cu ct pasul este s mai mic. Dar, exista i o eroare de rotunjire, care este cu att mai mare cu ct pasul este mai mic.
10 Eroarea absoluta a derivatei progresive de ord 1
5

10 Eroarea absoluta a derivatei centrate de ord 2


10 9 8 7 6 5

10 10 10 10 10 10 10 10

10

10

10

10

11

12

10

13

10

10

14

10

10

10 10 Pasul de derivare h

10

10

10

10

10 10 Pasul de derivare h

10

10

de Teste numerice pentru sin (/4): Eroarea n func tie de pasul de derivare pentru formula de derivare progresiva de ordinul 2 (dreapta). ordinul 1 (stnga) s i formula de derivare centrata

= pasul de la care ncep sa Pas optim de derivare numerica predomine erorile de trunchiere. Aten tie: Nu este pasul pentru care eroarea este minima!.

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

prin cod Algoritmi numerici - func tie data


de Estimarea hoptim n cazul formulei de derivare progresiva ordinul 1. y yk y yk yk = k +1 = k +1 (25) xk +1 xk h M e t = | yk f (xk )| 2 h, (26) 2 marginea erorii de trunchiere: unde |f (x )| M2 . Notam at = Pp. |eyk /yk | < eps, s i eh = 0 | ey k + 1 | + | e y k | eps(|yk +1 | + |yk |) h h |f (x )| M0 atunci Daca | er | | er | 2M0 eps not = ar h (28) M2 h 2 (27)

(29)

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

prin cod Algoritmi numerici - func tie data


e = et + er va majorata de Eroarea totala | e | = | e t + er | | e t | + | e r | a t + a r = m ( h ) M2 2M0 eps h+ , 2 h2 min(m(h)) = m(hoptim ). m (h ) =
Marginea erorii de trunchiere at(h) Marginea erorii de rotunjire ar(h) Marginea erorii totale a(h)

(30) (31)

Marginea erorii

hoptim

este pasul de la care ncep sa predomine erorile de trunchiere. Pasul optim de derivare numerica

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

prin cod Algoritmi numerici - func tie data


Condi tia de minim m (h ) = 0 valoarea optima a pasului de derivare rezulta hoptim = 2 M0 eps . M2 (32)

Pasul optim de derivare depinde de:


eroarea de rotunjire marginea func tiei marginea derivatei a doua.

s El este pasul pentru care marginea erorii totale este minima i este nu trebuie confundat cu pasul pentru care eroarea totala pas care s-ar putea sa e mai mic dect pasul optim, minima, dar care nu poate estimat apriori.

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

prin cod Algoritmi numerici - func tie data


de ordinul 1 a unei func Algoritm pentru derivata progresiva tii date h)+f (x +2h) . prin cod, folosind un pas de derivare optim. M2 f (x )2f (x + 2 h
func tie derivata_f(x , h0, maxit ) derivata numerica a func ; calculeaza tiei f folosind diferen te progresive de ordinul 1 s i pas optim de derivare ; punctul n care se va evalua derivata real x real h0 ; pasul ini tial ; numarul maxim de itera tii pentru calculul pasului ntreg maxit ; alte declara tii eps = zeroul_ma sinii () f 0 = f (x ) ; valoarea func tiei n punctul de derivare h = h0 k =0 repet a k =k +1 f 1 = f (x + h) f 2 = f (x + 2h) M 2 = |f 0 2f 1 + f 2|/h2 ; estimarea marginii derivatei a doua daca derivata a doua este zero ; testeaza dac a M 2 < eps eroarea de trunchiere e zero hoptim = h ; func tia e liniara, altfel M 0 = max(|f 0|, |f 1|, |f 2|) ; estimarea marginii func tiei hoptim = 2 M 0eps/M 2 r = h/hoptim ; rata de modicare a pasului h = hoptim pn a cnd (k > maxit ) sau (r > 0.5 si r < 2) ntoarce (f (x + hoptim) f 0)/hoptim

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Derivate de ordin superior

Pot privite ca aplica tii recursive ale derivatei de ordinul unu. pregatire_derivate( n, x , dy , d 2y ) rez = interpolare_lpp(n, x , d 2y , xcrt ) ca procednd astfel, acurate Experimentele numerice arata tea ce ordinul derivatei rezultatului se pierde pe masur a

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Derivate de ordin superior


posibilitate: deducerea formulelor de derivare pornind de O alta la polinomul de interpolare ini tial.
g (x ) = + (x xk )(x xk +1 ) (xk 1 xk )(xk 1 xk +1 ) (x xk 1 )(x xk ) (xk +1 xk 1 )(xk +1 xk ) (x xk ) + (x xk +1 ) (xk 1 xk )(xk 1 xk +1 ) (x xk 1 ) + (x xk ) (xk +1 xk 1 )(xk +1 xk ) 2 (xk 1 xk )(xk 1 xk +1 ) 2 (xk +1 xk 1 )(xk +1 xk ) yk 1 + (x xk 1 )(x xk +1 ) (xk xk 1 )(xk xk +1 ) yk + (33)

yk +1 ,

g (x )

= +

yk 1 +

(x xk 1 ) + (x xk +1 ) (xk xk 1 )(xk xk +1 )

yk + (34)

yk +1 . yk 1 + 2 (xk xk 1 )(xk xk +1 ) yk +

g (x )

= +

yk +1 ,

(35)

n cazul particular xk +1 xk = xk xk 1 = h g (x ) = yk 1 2yk + yk +1 . h2 (36)

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Derivate de ordin superior


suplimentar Evaluarea erorii - folosind seria Taylor cu un numar de termeni.
f (xk +1 ) f (xk 1 ) = = f (xk ) 2 f (xk ) 3 h + h + O(h4 ), (37) 2! 3! f (xk ) 2 f (xk ) 3 f (xk ) f (xk )h + h h O(h4 ). (38) 2! 3! f (xk ) + f (xk )h + (39) (40)

f (xk +1 ) + f (xk 1 ) = 2f (xk ) + f (xk )h2 + O(h4 ). yk +1 2yk + yk 1 f (xk ) = O(h2 ). h2 Polinomul de interpolare ini aiba un grad tial trebuie sa

sucient de mare pentru ca derivata de ordin superior sa e nenula. Ar putea apare fenomenului Runge care va afecta s i acurate tea derivatelor numerice. De aceea, calculul numeric al derivatelor de ordin superior trebuie evitat.

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Derivate par tiale


f (x , y ) : [a, b] [c , d ] IR. a = x0 , x1 , . . . , xi , . . . , xn = b c = y0 , y1 , . . . , yj , . . . , ym = d

d=ym

yj y

(xi,yj)

Valorile "tabel":

din

f (xi , yj ) = zi ,j
c=y0 a=x0 xi x b=xn

i = 0, n

j = 0, m

Discretizarea domeniului de deni tie.

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Derivate par tiale


a derivatelor par Evaluarea numerica tiale se reduce la a derivatelor totale. evaluarea numerica
f x = lim
x =x0 ,y =y0 x x0

f 1(x ) f 1(x0 ) f (x , y0 ) f (x0 , y0 ) df 1 = lim = , x x x x0 x x0 dx 0 (41)

unde f 1(x ) = f (x , y0 ) este o func tie care depinde de o singura reala. Similar, variabila
f y = lim
x =x0 ,y =y0 y y0

f 2(y ) f 2(y0 ) f (x0 , y ) f (x0 , y0 ) df 2 = lim = , y y0 y y0 y y0 dy (42)

unde f 2(y ) = f (x0 , y ) este o func tie care depinde de o singura reala. variabila de ordinul 1 Formulele de derivare progresiva
zi +1,j zi ,j g (xi , yj ) = , x xi +1 xi zi ,j +1 zi ,j g (xi , yj ) = y yj +1 yj (43)

etc.

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Derivate par tiale


a operatorului Laplace aplicat Exemplu: evaluarea numerica varibile. unei func tii de doua
f = 2f 2f + . 2 x y 2 (44)

Pp. xi +1 xi = yj +1 yj = h, pentru orice i = 0, n 1, j = 0, m 1


g = = zi ,j 1 2zi ,j + zi ,j +1 zi 1,j 2zi ,j + zi +1,j + = 2 h h2 zi 1,j + zi +1,j + zi ,j 1 + zi ,j +1 4zi ,j , h2

(45)

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Derivate par tiale


zi,j+1

yj

zi1,j

zi,j zi,j1

zi+1,j

g =

zi 1,j + zi +1,j + zi ,j 1 + zi ,j +1 4zi ,j h2 (46)

xi

n discretizarea operatorului Laplace n punctul (xi , yj ) apar numai valorile

astfel de ra Daca tionamente se folosesc pentru rezolvarea numerica a problemelor de inginerie formulate cu ajutorul unor ecua tii cu pentru derivate totale (ODE) sau par tiale (PDE) atunci se spune ca metoda diferen rezolvarea problemei se aplica telor nite.

nodurilor marcate.

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Metoda diferen telor nite


Pasul 1: Se alege o schema de diferen te nite pentru

aproximarea derivatelor din ecua tii s i se rescrie ecua tia ca ecua tie cu diferen te nite.
Pasul 2: Se stabile ste grila de discretizare s i se scrie

pentru ecare nod. ecua tia discretizata


Pasul 3: Se rezolva sistemul de ecua tii pentru

determinarea valorilor necunoscute n nodurile grilei.


Pasul 4: Calculul altor valori, n afara celor din noduri, se

face prin interpolare. 1s i 2 = preprocesare 3 = rezolvare 4 = postprocesare

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Exemplul 1 - rezolvarea unei ecua tii diferen tiale ordinare


Vom considera un condensator de capacitate C = 4F, ini tial de la o sursa de tensiune continua descarcat, care se ncarca R = 10 . E = 20 mV printr-un rezistor de rezisten ta Fie i curentul prin circuit s i u tensiunea la bornele condensatorului. Ri (t ) + u (t ) = E . (47) du (t ) i (t ) = C , (48) dt du (t ) + u (t ) = E . (49) RC dt u ( 0) = u 0 = 0. (50) Solu tie analitica u (t ) = (u0 E ) exp(t / ) + E . unde = RC este constanta de timp a circuitului. (51)

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Exemplul 1 - rezolvarea unei ecua tii diferen tiale ordinare


Ecua tia (49) o rescriem ca du (t ) 1 1 + u (t ) = E . dt (52)

calculul numeric n intervalul de timp [0, tmax ] unde Vom urmari de N puncte tk , unde pasul tmax = 10 ntr-o re tea echidistanta de discretizare h este tk + 1 t k = h , pentru k = 1, . . . , N 1. (53)

cu Vom nota valorile discrete ob tinute prin rezolvare numerica uk . Ele vor aproxima tii ale marimii reale u . uk u ( t k ) . (54)

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Exemplul 1 - rezolvarea unei ecua tii diferen tiale ordinare


du (t ) dt + 1 u (t ) = 1 E. (55)

Varianta I - diferen te nite progresive de ordinul 1 uk + 1 u k 1 1 + uk = E , h h h uk = E . explicit cu formula poate calculata uk + 1 u k + uk + 1 = u k 1 h + h E. (56) (57)

uk + 1

(58)

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Exemplul 1 - rezolvarea unei ecua tii diferen tiale ordinare


uk + 1 = u k
procedur a mdf_ode_p1(u0,E,tau,h,N,u)
1 u (t ) = 1 E cu metoda diferen ecua ; rezolva tia dt + telor nite folosind diferen ; d/dt se discretizeaza te progresive de ordinul 1 - data ; condi tia ini tiala real u0 real E ; coecient n ecua tie - data de timp - data real tau ; constanta real h ; pas de discretizare al intervalului de timp - dat de valori de timp - dat ntreg N ; numar - rezultat ; solu tia discreta tablou real u[N] u(1) = u0 pentru k = 1,N-1 u(k+1) = u(k)*(1-h/tau) + h*E/tau retur du ( t )

h E.

(59)

metoda, cunoscuta s , Aceasta i sub numele de Euler explicita pentru h > . este instabila

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Exemplul 1 - rezolvarea unei ecua tii diferen tiale ordinare


du (t ) dt + 1 u (t ) = 1 E. (60)

Varianta a II-a - diferen te nite regresive de ordinul 1 1 uk u k 1 1 + uk = E , h uk u k 1 + explicit: uk poate calculata uk = uk 1 + h h E / 1+ . (63) h h uk = E . (61) (62)

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Exemplul 1 - rezolvarea unei ecua tii diferen tiale ordinare


uk =
procedur a mdf_ode_r1(u0,E,tau,h,N,u)
1 u (t ) = 1 E cu metoda diferen ecua telor nite ; rezolva tia dt + folosind diferen ; d/dt se discretizeaza te regresive de ordinul 1 - data ; condi tia ini tiala real u0 real E ; coecient n ecua tie - data de timp - data real tau ; constanta real h ; pas de discretizare al intervalului de timp - dat de valori de timp - dat ntreg N ; numar - rezultat ; solu tia discreta tablou real u[N] u(1) = u0 pentru k = 2,N u(k) = (h*E/tau + u(k-1))/(1 + h/tau) retur du ( t )

uk 1 +

h h E / 1+

(64)

pentru rezolvarea ODE) nu mai este instabila Metoda (Euler implicita pentru h > .
este dy /dt = f (t , y ) unde f este o func Folosirea derivatei regresive Ecua tia generala tie n general neliniara. pentru calculul lui uk , rela o ecua n cazul pentru f conduce la o rela tie implicita tie ce reprezinta tie neliniara. s particular studiat, f este liniara i de aceea solu tia se poate calcula explicit.

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Exemplul 1 - rezolvarea unei ecua tii diferen tiale ordinare


du (t ) dt + 1 u (t ) = 1 E. (65)

Varianta a III-a - diferen te nite centrate de ordinul 2 uk + 1 u k 1 1 1 + uk = E , 2h 2h 2h uk 1 + uk + u k + 1 = E. k = 2, . . . , N 1 N 2 ecua tii cu N necunoscute. Trebuie adaugate rela tiile la capete. La t = 0: u (1) = u0 Pentru k = N diferen te regresive de ordinul 2: 1 1 u N 2 4u N 1 + 3u N + uN = E , 2h u N 2 4u N 1 + 3 + 2h uN = 2h E. (66) (67)

(68) (69)

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Exemplul 1 - rezolvarea unei ecua tii diferen tiale ordinare


procedur a mdf_ode_c2(u0,E,tau,h,N,u)
1 u (t ) = 1 E cu metoda diferen ecua telor nite ; rezolva tia dt + folosind diferen ; d/dt se discretizeaza te centrate de ordinul 2 - data ; condi tia ini tiala real u0 real E ; coecient n ecua tie - data de timp - data real tau ; constanta ; pas de discretizare al intervalului de timp - dat real h de valori de timp - dat ntreg N ; numar - rezultat tablou real u[N] ; solu tia discreta tablou real A[N,N] ; matricea coecien tilor sistemului asamblat - stocata rar tablou real tl[N] ; vectorul termenilor liberi ai sistemului asamblat A=0 ; pseudocod simplicat tl = 0 A(1,1) = 1 ; conditia initiala tl(1) = u0 ; noduri interioare pentru k = 2,N-1 A(k,k-1) = -1 A(k,k) = 2*h/tau A(k,k+1) = 1 tl(k) = 2*h*E/tau A(N,N-2) = 1 ; conditia la tmax = N*h A(N,N-1) = -4 A(N,N) = (3 + 2*h/tau) tl(N) = 2*h*E/tau u = A1 tl ; rezolva sistemul algebric liniar asamblat retur du ( t )

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Exemplul 1 - rezolvarea unei ecua tii diferen tiale ordinare

h/tau = 0.500000 2.5 0.02 0.018 0.016 0.014 u [V] 0.012 0.01 0.008 0.006 0.004 0.002 0 0 1 2 t [s] 3 x 10 analitic prog ord 1 regr ord 1 centr ord 2 4
4

x 10

h/tau = 0.500000 prog ord 1 regr ord 1 centr ord 2

Eroare absoluta [V]

1.5

0.5

2 t [s]

3 x 10

4
4

Cazul h = /2.

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Exemplul 1 - rezolvarea unei ecua tii diferen tiale ordinare

h/tau = 1.000000 8 0.02 0.018 0.016 0.014 u [V] 0.012 0.01 0.008 0.006 0.004 0.002 0 0 1 2 t [s] 3 x 10 analitic prog ord 1 regr ord 1 centr ord 2 4
4

x 10

h/tau = 1.000000 prog ord 1 regr ord 1 centr ord 2

7 6 Eroare absoluta [V] 5 4 3 2 1 0

2 t [s]

3 x 10

4
4

Cazul h = .

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Exemplul 1 - rezolvarea unei ecua tii diferen tiale ordinare


h/tau = 2.000000 0.04 0.035 0.03 Eroare absoluta [V] 0.025 u [V] 0.02 0.015 0.01 0.005 0.005 0 0 prog ord 1 regr ord 1 centr ord 2 analitic prog ord 1 regr ord 1 centr ord 2 0.025 h/tau = 2.000000 0.02

0.015

0.01

2 t [s]

3 x 10

4
4

2 t [s]

3 x 10

4
4

Cazul h = 2 .
diferen n cazul utilizarii telor centrate de ordinul 2, metoda nu este s dect implementarile instabila i este mai precisa anterioare. Acest de lucru era de a steptat deoarece formulele de derivare numerica ordinul 2 sunt mai precise dect cele de ordinul 1. Cre sterea pe seama cre tii algoritmului. acurate tii se face nsa sterii complexita

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Exemplul 2 - rezolvarea unei ecua tii derivate par tiale de tip eliptic
y =0 b b/2 1V

V=1

dV/dn=0

P
dV/dn=0

a/2 a

dV/dn=0

V = 0

S
V=0

0V x

dV/dn=0

(dreapta). Problema 2D de regim electrocinetic: domeniul de calcul (stnga), condi tii de frontiera

un conductor omogen, de conductivitate , situat ntr-un mediu perfect Se da axa Oz mult mai lunga dect izolant. Conductorul are o dimensiune dupa Figura reprezinta o sec pe direc celelalte doua. tiune perpendiculara tia sec dimensiunii foarte mari. Aceasta tiune este un dreptunghi, de dimensiuni borne supraconductoare, una aata la poten a, b. Conductorul are doua tial aata la poten V0 = 1V, iar cealalta tial nul. Se cere cmpul n acest domeniu.

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Exemplul 2 - rezolvarea unei ecua tii derivate par tiale de tip eliptic
Formularea n V - poten tial electrocinetic, unde E = grad V , E este intensitatea cmpului electric. a de V : Ecua tia de ordinul doi satisfacut div ( grad V ) = 0 (70) de tip Laplace V : D IR; D = ONPQ; (70) - ecua tie eliptica, Domeniul omogen ecua generalizata. tie de tip Laplace: V = 0, = div grad este operatorul Laplace; n 2D, xOy: V = 2V 2V + . x 2 y 2 (72) (71)

Ecua tia de rezolvat, unde V = V (x , y ) : D IR: 2V 2V + = 0, x 2 y 2 (73)

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Exemplul 2 - rezolvarea unei ecua tii derivate par tiale de tip eliptic
Condi tii de frontiera: V = V0 pe QR (Dirichlet) (74) (75) (76) V = 0 pe SN (Dirichlet) V = 0 pe NOQ RPS (Neumann) n Gridul de discretizare bidimensional: 0 = x1 < x2 < . . . < xnx = a 0 = y1 < y2 < . . . < yny = b. Un nod al gridului: (xi , yj ) i = 1, . . . , n x ,
not

j = 1, . . . , n y .

valorile poten MDF determina tialului n nodurile acestui grid: V (xi , yj ) = Vi ,j i = 1, n x , j = 1, n y . (77)

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Exemplul 2 - rezolvarea unei ecua tii derivate par tiale de tip eliptic
unui nod interior: Pp hx , hy pa Ecua tia asociata sii de discretizare: 2V (xi , yj ) = x 2 2V (xi , yj ) = y 2 Vi +1,j 2Vi ,j + Vi 1,j , 2 hx Vi ,j +1 2Vi ,j + Vi ,j 1 . 2 hy (78) (79)

Vi ,j +1 2Vi ,j + Vi ,j 1 Vi +1,j 2Vi ,j + Vi 1,j + = 0, 2 2 hx hy 2 1 1 + 2 2 hx hy Vi ,j

(80)

1 1 1 1 Vi +1,j 2 Vi 1,j 2 Vi ,j +1 2 Vi ,j 1 = 0. 2 hx hx hy hy (81)

a Poten tialul ntr-un nod interior este o combina tie liniara poten tialelor nodurilor nvecinate.

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Exemplul 2 - rezolvarea unei ecua tii derivate par tiale de tip eliptic
unui nod interior - re Ecua tia asociata tea neuniforma:

y C D O A x
Nodurile marcate intervin n scrierea ecua tiei unui nod interior.

1 1 + h B hD hA hC 1 VA hA ( h A + h C ) 1 VB hB ( h B + h D ) 1 VC hC ( h A + h C ) 1 VD = 0, (82) hD ( h B + h D ) VO hA = OA , hB = OB , hC = OC , hD = OD .

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Exemplul 2 - rezolvarea unei ecua tii derivate par tiale de tip eliptic
unui nod pe frontiera dreapta: Ecua tia asociata V Fie g = n s i gO valoarea n medie n O:
C D1 O A B

gO =

gOA hA + gOC hC hA + h C

(83)

lui unde gOA este CF asociata lui OA, iar gOC este CF asociata x OC. Nodurile marcate intervin n scrierea ecua tiilor unui D1 , hD = OD1 . Nod fantoma" Neumann dreapta. nod pe frontiera Pentru simplitate hD = hB . g V = . (84) x g (85) VD1 = VB 2hB O .

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Exemplul 2 - rezolvarea unei ecua tii derivate par tiale de tip eliptic
unui nod pe frontiera dreapta: Ecua tia asociata Pentru O se scrie o ecua tie ca pentru un nod interior s i nlocuind expresia (85) : n
C D1 O A x
Nodurile marcate intervin n scrierea ecua tiilor unui Neumann dreapta. nod pe frontiera

VO
B

1 1 + 2 hA hC hB 1 VA hA (hA + hC ) 1 VB 2 hB 1 gO VC = (86) . hC (hA + hC ) hB

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Exemplul 2 - rezolvarea unei ecua tii derivate par tiale de tip eliptic
Discretizarea problemei conduce la un sistem de ecua tii algebric liniar, prin a carui rezolvare se ob tin valorile poten tialelor n nodurile gridului. Pentru asamblarea sistemului este util ca nodurile sa e reprezinte un vector. numerotate a.. necunoscutele sa
ny j 2 ny k nx ny

2 1 ny+1 (i1)ny+1 (nx1)ny+1

axe i s Exemplu de numerotare a nodurilor. Rela tia ntre numarul nodului k s i pozi tiile proiec tiilor sale pe cele doua i j este k = (i 1)ny + j , i = 1, . . . , nx , j = 1, . . . , ny

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Exemplul 2 - rezolvarea unei ecua tii derivate par tiale de tip eliptic

2 1.8 1.6

1
0. 9

0.9
0.8 0.8
0.7

0. 0.

1.8 0.9 1.6


0. 3

0.9

0.8

0.7

0.

8 0.

0.

21

1.4 1.2 1 0.8 0.6


0. 6 5 0.

0.

6 0. 5 2 0.
0.3

0.8
1.4 1.2 0.7

0.

0.

5
0.4
0.3

0.7

0.7
0.6

0.

0.

0.6
1

0.

0.

0.2
0.1

0.6
0.8 0.6
0. 5
0.3

0.2

0.5

1.5

0.

0.5

1.5

0.1

0.2

0.3

0.

0.1

0.4

0.4

0.4 0.2

0.4

0.2

Linii echipoten tiale pentru un grid cu nx = ny = 3 (stnga) s i un grid cu nx = ny = 21 (dreapta).

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Exemplul 3 - rezolvarea unei ecua tii cu derivate par tiale de tip hiperbolic
Ecua tia undei scalare:
2 2u 2 u = v , t 2 x 2

(87)

cunoscuta. u (x , t ) : [0, a] [0, T ] IR, v este o constanta care se propaga cu viteza v. Solu tia acestei ecua tii este o unda impunerea Buna formulare a acestei probleme necesita
condi tiei ini tiale u (x , 0) = h0 (x ), condi tiilor la capete - rela tii n care intervin marimile

u ( 0, t ) = h 1 ( t ) s i u (a , t ) = h2 (t ).

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Exemplul 3 - rezolvarea unei ecua tii cu derivate par tiale de tip hiperbolic
Se poate demonstra ca u (x , t ) = ud (x , t ) + ui (x , t ) + U0 , (88)

directa s unde ud (x , t ) se nume ste unda i se poate scrie sub forma ud (x , t ) = f (x vt ), (89) inversa s iar ui (x , t ) se nume ste unda i se poate scrie sub forma ud (x , t ) = g (x + vt ). (90)

n mod univoc, din impunerea condi f s i g rezulta tiilor ini tiale s i condi tiilor la capete.
valoare a acestei func f (x vt ) - o anumita tii, ntr-un anumit punct x s i ntr-un anumit moment de timp t se va regasi un interval de timp t n punctul x + x , unde x = v t (se propaga deci n sensul pozitiv al axei Ox). dupa

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Exemplul 3 - rezolvarea unei ecua tii cu derivate par tiale de tip hiperbolic
s Avem nevoie de o discretizare spa tiala i de una temporala. ambele discretizari sunt uniforme s Pp. ca i vom nota cu z pasul discretizarii spa tiale t pasul discretizarii temporale N numarul de puncte de discretizare spa tiale M numarul de pa si de timp simula ti timpul maxim de simulare este T = M t Vom considera urmatoarele condi tii de unicitate: condi nula u (x , 0) = h0 (x ) = 0, tia ini tiala condi tia la capatul din stnga - excita tia cu un impuls Gauss: u (0, t ) = h1 (t ) = exp((t T /10).2 /(2 (T /50)2 )) condi din dreapta u (a, t ) = h2 (t ) = 0. tia la capatul
e modelata ca o frontiera n problemele n care apare propagare, este util uneori ca frontiera domeniului spa tial sa "invizibila" din punct de vedere al propagarii marimilor absorbanta, n domeniul spa tial modelat. Condi tia de frontiera
u + v u = 0. pentru capatul din dreapta al problemei studiate este absorbanta t z

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Exemplul 3 - rezolvarea unei ecua tii cu derivate par tiale de tip hiperbolic
att n spa Marimea u (x , t ) este discretizata tiu ct s i n timp. Prin rezolvarea cu MDF, vom ob tine aproxima tii: u (xk , tj ) uk , uk
(j +1) uk (j 1) (j )

k = 1, . . . , N ,
(j )

j = 1, . . . , M .
(j ) (j )

(91)

Formule de derivare de ordin 2: 2u k + u k (t )2


2 (j ) (j ) (j +1)

= v2

u k 1 2u k + u k + 1 (x )2
(j ) (j )

(92)

v t x

j 1 , u k 1 2u k + u k + 1 + 2u k u k

(j )

k = 2, . . . , N

(93) ca marimea de unde rezulta u , ntr-un anumit punct k s i la un anumit moment de timp j + 1 depinde explicit de valoarea n acel punct s i n cele nvecinate la momentul de timp anterior j s i de valoarea n acel punct la momentul j 1:

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Exemplul 3 - rezolvarea unei ecua tii cu derivate par tiale de tip hiperbolic
tmax = 1.00e+000, no = 1000, idx = 400
t t

tmax = 1.00e+000, no = 1000, idx = 600


t t

2 1.5 1 0.5 0 0.5 1 1.5 2 0 0.2 0.4 0.6 0.8 1

2 1.5 1 0.5 0 0.5 1 1.5 2 0 0.2 0.4 0.6 0.8 1

atingerea unei frontiere pe care s-a impus Propagarea unui impuls Gauss (stnga) s i rezultatul reexiei dupa (dreapta). condi tie Dirichlet nula

necesita att o discretizare spa ct Atunci cnd o problema tiala pentru ca solu sa e stabila, este s i una temporala, tia numerica e ndeplinita condi necesar sa tia lui Courant | v | t x . (94)

Formulare

Formule de der.

Algoritmi

Der.ord.sup

Der.part.

MDF-1

MDF-2

MDF-3

Concluzii - MDF
1. n rezolvarea ecua tiilor diferen tiale cu metoda diferen telor tii nite, trebuie avute n vedere aspectul stabilita numerice datorate algoritmului s i aspectul instabilitatii n zona n care predomina erorile de rotunjire. intrarii diferit daca ecua 2. Stabilitatea se analizeaza tia este cu derivate ordinare (ODE) sau cu derivate par tiale (PDE). 3. Formulat pe scurt, trebuie ca pa sii de discretizare trebuie e sucient de mici pentru ca algoritmul sa e stabil, dar sa nu se intre n zona erorilor de rotunjire. nu prea mici ca sa poata sa foloseasca pa 4. Un algoritm ecient ar trebui sa si de discretizare neuniformi, adapta ti tipului de varia tie a solu tiei.

You might also like