Está en la página 1de 21

Ecuatia hiperbolica

2u 2
2 u
2
2
= F ( x, y )
t x

Domeniul de definitie: t [0, T ] si x [ xA , xB ]

Conditie initila: t = 0 avem u ( x, 0) = f1 ( x)


u ( x, 0)
= f 2 ( x)
t
Conditii la limita: x = xA avem u ( xA , t ) = g1 (t )
x = xB avem u ( xB , t ) = g 2 (t )

Veriticare tip ecuatie: Scrieti forma generala la examen !

2u 2u 2u u u
A 2 +B +C 2 + D + E + Fu + G = 0
t t x x t x
Avem: A = 1 si C = -2 B 2 4 AC = 0 4 1 ( 2 ) > 0
Ecuatia hiperbolica

Determinarea solutiei numerice:

I. Discretizarea ecuatiei

II. Discretizarea domeniului

III. Discretizarea conditiilor la limita

IV. Calculul solutiei numerice

!!! La examen se va da si solutia analitica verificati ca


aceasta solutie verifica ecuatia si conditiile la limita !!!
I. Discretizarea ecuatiei

y = f ( x) yi = f ( xi )

d 2 y ( xi ) yi +1 2 yi + yi 1
yi = 2
=
dx x 2

y u u = u ( x, t ) uin = u ( xi , tn )

d 2uin uin +1 2uin + uin 1 d 2uin uin+1 2uin + uin1


2
= =
dt t 2 dx 2 x 2
I. Discretizarea ecuatiei

t
d 2uin uin+1 2uin + uin1
T
2
=
dx x 2

d 2uin uin +1 2uin + uin 1


2
=
dt t 2
0

xA xB x

2u 2
2 u uin +1 2uin + uin 1 n n n
2 ui +1 2ui + ui 1
= F ( x, y ) 2
2
= F ( xi , tn )
t 2 x 2 t x
II. Discretizarea domeniului

t ui , j = u ( xi , tn )
T
i = 1, N x
n = 1, Nt

ui , j = ?

xi = ?
0 tn = ?

xA xB x

x xA T 0
x = B xi = x A + x (i 1) t = t j = 0 + t ( n 1)
N x 1 Nt 1
III. Discretizarea conditiilor la limita

u = g1 (t )
u = g 2 (t )

u ( x1 , tn ) = g1 (tn ) u ( xN x , tn ) = g 2 (tn )

u = f1 ( x) i = 1, N x
u ( xi , t1 ) = f ( xi ) n = 2, Nt
u ( x, 0)
= f 2 ( x)
t
III. Discretizarea conditiilor la limita

u ( x, 0)
= f 2 ( x)
t

u ( xi , tn ) uin +1 uin ui2 ui1


= = f 2 ( xi ) discretizare de ordinul unu
t t t

Pentru discretizare de ordinul doi scriem dezvoltarea in serie Taylor

2 ui1
1 1 2ui1 2
u =u +
i i t + 2
t + ...
t 2 t
2u 2
2 u 2u 2
2 u
2
2
F ( x, t ) = + F ( x, t )
t x t 2 x 2

2ui1 2 1
2 ui 2ui1 1 1 1
2 ui +1 2ui + ui 1
2
= 2
+ F ( xi , t1 ) 2
= 2
+ F ( xi , t1 )
t x t x
III. Discretizarea conditiilor la limita

2 ui1
1 1 2ui1 2
u =u +
i i t + 2
t
t 2 t

2 1 1 u 1
2 i +1 2u 1
+ u 1
i 1
2
ui = ui + f 2 ( xi )t + i
2
+ F ( xi , t1 ) t
2 x

i=2 n=2

u22 = u12 + f 2 ( x2 )t +
1 2 u31 2u12 + u11 2
+ 2
+ F ( x2 1 t
, t )
2 x

i = 2, N x 1
IV. Calculul solutiei numerice forma explicita

uin +1 2uin + uin 1 n n n


2 ui +1 2ui + ui 1
= F ( xi , tn ) i = 2, N x 1 n = 2, Nt 1
t 2 x 2

t 2
notatie = 2 < 1
2
uin +1 = 2uin uin 1 + (uin+1 2uin + uin1 ) + F ( xi , tn )t 2
x

uin +1 = 2uin (1 ) uin 1 + (uin+1 + uin1 ) + F ( xi , tn )t 2

i=2 n=2

u23 = 2u22 (1 ) u12 + (u32 + u12 ) + F ( x2 , t2 )t 2

i=3 n=2
u33 = 2u32 (1 ) u31 + (u42 + u22 ) + F ( x3 , t2 )t 2
Exemplu

Ecuatia : 2u 1 2u
2
2 2 =0
t x
Domeniul de definitie: x [0,1] si t [0,1.2]

Conditie initila: t = 0 avem u ( x, 0) = sin( x)


u ( x, 0)
= sin( x)
t
Conditii la limita: x = xA avem u ( xA , t ) = 0
x = xB avem u ( xB , t ) = 0

Solutia analitica: u ( x, y ) = sin( x)[cos(t ) + sin(t )] i = 1,5 n = 1,3


i = 1,50 n = 1,30
t = 0.0002
Verificarea solutie analitice
2 2
Ecuatia : u 1 u
2
2 2
=0 Solutia analitica: u ( x, y ) = sin( x)[cos(t ) + sin(t )]
t x

Verificarea ecuatiei:
2u 2u
2
= sin( x)[cos(t ) + sin(t )] 2
= 2 sin( x)[cos(t ) + sin(t )]
t x
1 2
sin( x)[cos(t ) + sin(t )] 2
{ sin( x)[cos(t ) + sin(t )]} = 0

Conditie initila: t = 0 avem u ( x, 0) = sin( x)[cos(0) + sin(0)] = sin( x)


u ( x, 0)
= sin( x)[ sin(t ) + cos(t )] = sin( x)
t
Conditii la limita: x = xA avem u (0, t ) = sin( 0)[cos(t ) + sin(t )] = 0
x = xB avem u (1, t ) = sin( 1)[cos(t ) + sin(t )] = 0
I. Discretizarea ecuatiei

uin +1 2uin + uin 1 n n n


2 ui +1 2ui + ui 1
= F ( xi , tn ) i = 1,5 n = 1,3
t 2 x 2

t 2
notatie = 2 < 12
uin +1 = 2uin (1 ) uin 1 + (uin+1 + uin1 ) + F ( xi , tn )t 2
x

xB x A 1 0 t f ti
1.2 0
x = = = 0.25 t = = = 0.6
N x 1 5 1 Nt 1 3 1

1 0.62
= 2 2
= 0.7639 < 1 F ( xi , tn 1 ) = 0
0.25

uin +1 = 0.4722 uin uin 1 + 0.7639(uin+1 + uin1 ) i = 2, 4 n=2


II. Discretizarea domeniului

x = 0.25 xi = x A + x (i 1)
i = 1,5 j = 1,3
t = 0.6 xi = 0 + 0.25(i 1)
0
1.2
0.25

x = 0.5
0.75

1
0.6 tn = 0 + t ( n 1)

tn = 0.6( n 1)
0

y = 0.6
0.0 1.2
0.0 0.25 0.5 0.75 1
III. Discretizarea conditiilor la limita

Conditie initila:
t = 0 avem u ( x, 0) = sin( x)
0.0 0.0

ui ,1 = sin( xi ) i = 1, N x

u ( x, 0)
= sin( x)
t
0.0 0.0

Conditii la limita:

x = 0 avem u (0, t ) = 0
u1,n = 0
0.0 0.7071 1.0 0.7071 0.0
x = 1 avem u (1, t ) = 0
u N x ,n = 0 n = 2, Nt
III. Discretizarea conditiilor la limita

Conditie initila:
u ( x, 0)
t =0 = sin( x)
0.0 0.0 t
ui2 = ui1 + f 2 ( xi )t +
1 2 ui1+1 2ui1 + ui11 2
+ 2
+ F ( xi 1 t
, t )
2 x
1.0105 1.4291 1.0105
0.0 0.0 ui2 = ui1 + sin( xi )0.6 +
1 1 ui1+1 2ui1 + ui11 2
+ 2 2 0.6
2 0.25

i = 2, N x 1 = 2, 4
0.0 0.7071 1.0 0.7071 0.0

1 1 1 2 0.7071 + 0 2
i=2 u22 = 0.7071 + sin( 0.25)0.6 + 2 2 0.6 = 1.0105
2 0.25
IV. Calculul solutiei numerice
uin +1 = 0.4722 uin uin 1 + 0.7639(uin+1 + uin1 ) i = 2, 4 n=2

0.0 0.9684 1.3696 0.9684 0.0


i=2 n=2

u23 = 0.4722 u22 u12 + 0.7639(u32 + u12 )

u23 = 0.4722 1.0105 0.7071


0.0 1.0105 1.4291 1.0105 0.0 + 0.7639(1.4291 + 0) = 0.9684

vex vap 1.2944 1.3696


err = 100 = = 5.81%
vex 1.2944
0.0 0.7071 1.0 0.7071 0.0
Program
PROGRAM ecuatie_hiperbolica
implicit none
! I. Declarare ! III. Calcul
! discretizare domeniu
! II. Initializare
! impunerea conditiilor la limita
! III. Calcul
! calculul solutiei
! IV. Afisare (salvare)

CONTAINS

Function Us(x,t)
implicit none
real x,t,Us
real pi
pi=4*atan(1.0)
Us=sin(pi*x)*(sin(t)+cos(t))
End function

END
Discretizare domeniu

xB x A ! Discretizare domeniu
x = dx=(xB-xA)/(Nx-1);
N x 1
dt=(tf-ti)/(Nt-1);
xi = x A + x(i 1)
Do i=1,Nx
x(i)=xA+dx*(i-1)
t f ti
t = EndDo
Nt 1
tn = ti + t ( n 1) Do n=1,Nt
t(n)=ti+dt*(n-1)
EndDo
i = 1, N x n = 1, Nt
Impunerea conditiilor la limita

Conditie initila: ! Conditii la limita


pi=4*atan(1.0)
ui ,1 = sin( xi ) i = 1, N x lambda=dt*dt/dx/dx/pi/pi;

Do i=1,Nx
ui2 = ui1 + sin( xi )t +
u(i,1)=Us(x(i),t(1))
1 2 ui1+1 2ui1 + ui11 2 u(i,2)=u(i,1)+sin(pi*x(i)) &
+ 2 t +0.5*(u(i+1,1)-2*u(i,1)+u(i-1,1))*lambda
2 x
EndDo

Do n=2,Nt
u(1,n)=Us(x(1),t(n))
Conditii la limita: u(Nx,n)=Us(x(Nx),t(n))
EndDo
u1,n = 0 uN x ,n = 0 n = 2, Nt
Calculul solutie numerice

uin +1 = 2uin (1 ) uin 1 + (uin+1 + uin1 )

i = 2, N x 1 n = 2, Nt 1

! Calculul solutiei numerice


Do i=2,Nx-1
Do n=2,Nt-1

u(i,n+1)=2*u(i,n)*(1-lambda)-u(i,n-1)+lambda*(u(i+1,n)+u(i-1,n))

EndDo
EndDo

También podría gustarte