Documente Academic
Documente Profesional
Documente Cultură
Ecuaii hiperbolice ntr-o variabil spaial (Ecuaia undelor) Caracteristici Considerm cea mai simpl ecuaie de acest tip (vezi, Morton i Mayers, 2005)
u u + a ( x, t ) = 0, t x
x [a, b], t 0
(III.88) (III.89)
u ( x,0) = u 0 ( x )
forma (vezi Smith, 1985):
a ( x, t ) u u = c ( x, t ) + b ( x, t ) x t
O metod de studiu a acestei ecuaii este metoda caracteristicilor. Reamintim c pentru o ecuaie de
(III.90)
a dy b dt = 0
iar u (x, t ) se afl din
(III.91)
c dt a du = 0 .
O formulare general a metodei descrise mai sus se poate fi pus ntr-o form compact astfel:
(III.92)
dt dy dU = = a b c
(III.93)
n cazul ecuaiei (III.88) ( c = 0 ), de-a lungul unei caracteristici soluia u (x, t ) satisface
du u u x = =0 dt t x t
i atunci, din condiia iniial (III.89), avem c
u ( x, t ) = u 0 (x j ) pentru o caracteristic ce trece
Dac a ( x, t ) = a = const . atunci caracteristicile sunt x at = const. , iar soluia ecuaiei (III.88) are
notatie
forma:
u ( x, t ) = u 0 ( x at )
(III.94)
Examinnd ecuaia (III.94) observm c soluia curent este de fapt soluia iniial deplasat la stnga dac a < 0 sau la dreapta dac a > 0 (vezi, Strikwerda, 2004) ). Astfel, soluia ecuaiei undei (III.88) poate fi privit ca i o und ce se propag cu viteza a fr s-i schimbe forma (vezi Fig. 37)
U in +1 U in U in U in1 +a =0 t x
sau
(III.95)
U n +1 = U n j j
unde =
at n U i U in1 = (1 )U in + U in1 x
(III.96)
at . x
Se observ c valoarea U n +1 depinde de dou valori calculate la pasul de timp n , iar acestea la rndul j Curs 11 2
lor depind de cte dou valori calculate la pasul de timp n 1 . Astfel se poate construi un domeniu de dependen a datelor pentru schema numeric, de form triunghiular, similar cu cel din Fig. 38. Domeniul de dependen corespunztor ecuaiei cu derivate pariale este chiar curba caracteristic ce trece prin punctul (xi , t n ) . Condiia CFL spune c o schem numeric este convergent dac
domeniul de dependen a ecuaiei difereniale (caracteristica) aparine domeniului de dependen al schemei numerice.
n Fig. 38 este prezentata schematic dependena de date pentru o schem cu diferene finite ce ndeplinete condiia CFL, caracteristica PQ situndu-se n domeniul de dependen al schemei numerice. Figura 39 prezint cazul n care condiia CFL este violat, ambele caracteristici PQ i
PR situndu-se n afara domeniului de dependen al schemei numerice, iar convergena n punctul P
nu poate fi atins.
Figura 39. Violarea condiiei CFL n cazul schemei (III.95) se observ c nu avem convergen pentru a < 0 deoarece n acest caz caracteristicile sunt de forma PR . n cazul n care a > 0 pentru a avea asigurat convergena este necesar ca at / x 1 . Dac vom folosi o discretizare cu diferene centrale pentru derivata spaial a ecuaiei (III.88) obinem urmtoarea schem cu diferene finite:
U in +1 U in U in+1 U in1 +a =0 2x t
Alegnd convenabil paii t i x , aceast schem satisface condiia CFL
(III.97)
c= a
t 1 x
(III.98)
att pentru valori negative ale lui a ct i pentru valori pozitive. Dependena de date a schemei numerice (III.97) este reprezentat schematic n Fig. 40. Curs 11 4
Figura 40. Dependena datelor n schema central. Pentru a studia stabilitatea schemei vom folosi din nou modurile normale din analiza Fourier:
U in = n e I k (ix )
i nlocuind n schema (III.97) obinem factorul de amplificare
(III.38)
(k ) = 1 a
t sin (kx ) x
(III.99)
pentru care putem avea > 1 i deci schema este instabil. Aadar, schema respect condiia CFL, dar nu este stabil i deci putem deduce c impunerea condiiei CFL este doar necesar i nu suficient pentru obinerea convergenei. Cea mai simpl schem care elimin aceste neajunsuri poate fi formulat astfel(vezi Morton i Meyers 2005):
(III.100) Remarcm faptul c aceast schem poate fi folosit i pentru a = a ( x, t ) . Schema (III.100) satisface condiia CFL i n plus este i stabil. ntr-adevr pentru a > 0 (dac a < 0 n relaie se nlocuiete a cu a ) avem: Curs 11 5
de unde
sau
(III.101) Dac se utilizeaz pentru ambele derivate, att cea n timp ct i cea n spaiu, discretizri cu diferene centrale se obine
metoda leapfrog (sritura broatei), metod care este de
ordinul O t 2 , x 2 :
Peter Lax (1926 - ) i Burton Wendroff (1930 - )
(III.102) Curs 11 6
Ambele scheme descrise mai sus sunt stabile pentru un numr Courant c 1 . Trebuie fcut ns observaia c pentru integrarea schemei (III.102) este nevoie de dou seturi de date de start, iar alegerea datelor de start diminueaz eficienta metodei chiar dac este vorba de o metod de ordinul doi. Una dintre schemele explicite cele mai eficiente este metoda Lax-Wendorff care se poate obine prin dezvoltri n serie Taylor. Considerm dezvoltarea:
sau
(III.106) Prin discretizarea derivatelor spaiale cu ajutorul diferenelor finite centrale se obine schema LaxWendorff:
(III.107) Schema (III.107) are ordinul de exactitate doi i este stabil pentru c 1 .
Curs 11 7
Metode implicite
Dac utilizm n ecuaia (III.88) diferene finite regresive pentru derivata temporal i diferene finite centrale pentru derivata spaial se obine o schem implicit de ordin O t , x 2 rezolvarea unui sistem liniar tridiagonal de ecuaii algebrice:
ce conduce la
sau
(III.108) Dac discretizm att derivata temporal ct i cea spaial cu diferene finite regresive se obine o metod de ordinul O (t , x ) dar al crei sistem este mult mai simplu de rezolvat:
(III.109) Una dintre cele mai folosite metode implicite este metoda lui Crank-Nicolson
(III.110) ce are ordinul de exactitate O t 2 , x 2 i care conduce la rezolvarea unui sistem liniar tridiagonal de ecuaii algebrice:
(III.111)
Exemplu
Considerm ecuaia:
care are soluia analitic u ( x, t ) = exp 1 5( x t ) . Vom rezolva ecuaia numeric folosind schema Lax2
Wendorff. Variaia soluiei n timp este redat n Fig. 41, iar programul Matlab este urmtorul:
Curs 11 9
uex=exp(1-5*(xa-t*ones(1,length(xa))).^2);%solutia exacta nr_it=0; plot(x,uo,'b',xa,uex,'or') pause k=1; M(k)=getframe; while t<tf t=t+dt; nr_it=nr_it+1; un(1)=uo(1)-dt/dx*(uo(2)-uo(1)); for i=2:N-1 un(i)=uo(i)-dt/dx/2*(uo(i+1)-uo(i-1))+0.5*dt*dt/dx/dx*(uo(i+1)-2*uo(i)+uo(i-1)); end un(N)=uo(N)-dt/dx*(uo(N)-uo(N-1)); if mod(nr_it,10)==0 k=k+1; uex=exp(1-5*(xa-t*ones(1,length(xa))).^2); plot(x,un,'b',xa,uex,'or'); M(k)=getframe; end uo=un; end movie(M)
Curs 11 10