You are on page 1of 21

Ecuatia hiperbolica

∂ 2u 2 ∂ u
2
−α = F ( x, t )
∂t 2
∂x 2

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 (functie de t si x) !
∂ 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
1
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 !!!
2
I. Discretizarea ecuatiei

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

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

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

∂ 2uin uin +1 − 2uin + uin −1 ∂ 2uin uin+1 − 2uin + uin−1


= =
∂t 2
∆t 2 ∂x 2 ∆x 2

3
I. Discretizarea ecuatiei

t
d 2uin uin+1 − 2uin + uin−1
T =
dx 2
∆x 2

d 2uin uin +1 − 2uin + uin −1


=
dt 2
∆t 2
0

xA xB x

∂ 2u 2 ∂ u
2
uin +1 − 2uin + uin −1 2 ui +1 − 2ui + ui −1
n n n
−α = F ( x, t ) → −α = F ( xi , tn )
∂t 2 ∂x 2 ∆t 2
∆x 2

4
II. Discretizarea domeniului

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

ui , j = ?

xi = ?
0 tn = ?

xA xB x

x − xA T −0
∆x = B xi = x A + i∆x ∆t = t j = 0 + n ∆t
N x −1 Nt − 1

5
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 = 0, N x
u ( xi , t0 ) = f ( xi ) n = 1, Nt
∂u ( x, 0)
= f 2 ( x)
∂t
6
III. Discretizarea conditiilor la limita

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

∂u ( xi , tn ) uin +1 − uin ui1 − ui0


= → = f 2 ( xi ) discretizare de ordinul unu
∂t ∆t ∆t

Pentru discretizare de ordinul doi scriem dezvoltarea in serie Taylor

∂ui0 1 ∂ 2ui0 2
u =u +
1 0
∆t + ∆t + ...
∂t 2 ∂t
i i 2

∂ 2u 2 ∂ u
2
∂ 2u 2 ∂ u
2
−α − F ( x, t ) → =α + F ( x, t )
∂t 2
∂x 2
∂t 2 ∂x 2

∂ 2ui0 2 ∂ ui
2 0
∂ 2ui0 2 ui +1 − 2ui + ui −1
0 0 0
=α + F ( xi , t1 ) → =α + F ( xi , t1 )
∂t 2
∂x 2
∂t 2
∆x 2

7
III. Discretizarea conditiilor la limita

∂ui0 1 ∂ 2ui0 2
u =u +
1 0
∆t + ∆t
∂t 2 ∂t
i i 2

1  2 ui0+1 − 2ui0 + ui0−1  2


u = u + f 2 ( xi )∆t +  α
1 0
+ F ( xi 0  ∆t
, t )
∆x
i i 2
2 

i =1 n =1

u11 = u10 + f 2 ( x1 )∆t +


1  2 u20 − 2u10 + u00  2
+ α + F ( x1 0  ∆t
, t )
2 ∆x 2

i = 1, N x − 1

8
IV. Calculul solutiei numerice – forma explicita

uin +1 − 2uin + uin −1 2 ui +1 − 2ui + ui −1


n n n
−α = F ( xi , tn ) i = 1, N x − 1 n = 1, Nt − 1
∆t 2 ∆x 2

∆t 2
notatie λ = α 2 < 1
2
uin +1 = 2uin − uin −1 + λ (uin+1 − 2uin + uin−1 ) + F ( xi , tn )∆t 2
∆x

uin +1 = 2uin (1 − λ ) − uin −1 + λ (uin+1 + uin−1 ) + F ( xi , tn )∆t 2

i =1 n =1

u12 = 2u11 (1 − λ ) − u10 + λ (u12 + u01 ) + F ( x1 , t1 )∆t 2

i = 2 n =1
u22 = 2u12 (1 − λ ) − u20 + λ (u31 + u11 ) + F ( x2 , t1 )∆t 2

9
Exemplu
∂ 2u 1 ∂ 2u
Ecuatia : − 2 2 =0
∂t 2
π ∂x Nx = 4 Nt = 2
Domeniul de definitie: x ∈ [0,1] si t ∈ [0,1.2] Indexii pleaca de la 0
(conventie)
Conditie initila: t = 0 avem u ( x,0) = sin(π x)
∂u ( x, 0) i = 0, 4 n = 0, 2
= 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 )]

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

Verificarea ecuatiei:
∂ 2u ∂ 2u
= − sin(π x)[cos(t ) + sin(t )] = −π 2
sin(π x)[cos(t ) + sin(t )]
∂t 2
∂x 2

1
− sin(π x)[cos(t ) + sin(t )] − {−π 2
sin(π x)[cos(t ) + sin(t )]} = 0
π 2

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
12
I. Discretizarea ecuatiei

uin +1 − 2uin + uin −1 2 ui +1 − 2ui + ui −1


n n n
i = 1,3 n = 1...
−α = F ( xi , tn )
∆t 2 ∆x 2

∆t 2
notatie λ = α 2 < 12
uin +1 = 2uin (1 − λ ) − uin −1 + λ (uin+1 + uin−1 ) + 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 = 0.7639 < 1 F ( xi , tn −1 ) = 0
π 0.25 2

uin +1 = 0.4722 ⋅ uin − uin −1 + 0.7639(uin+1 + uin−1 ) i = 1,3 n = 1...

13
II. Discretizarea domeniului

∆x = 0.25 xi = x A + i∆x
i = 0, 4 n = 0, 2
∆t = 0.6 xi = x A + 0.25
 0 
1.2
0.25
 
x =  0.5 
0.75
 
 1 
0.6 t n = 0 + n∆ t

tn = 0.6n
 0 
 
t = 0.6 
0.0 1.2 
0.0 0.25 0.5 0.75 1   14
III. Discretizarea conditiilor la limita

Conditie initila:
t = 0 avem u ( x, 0) = sin(π x)
0.0 0.0
ui0 = sin(π xi ) i = 0, N x
∂u ( x, 0)
= sin(π x)
∂t

0.0 0.0
Conditii la limita: n = 1, Nt
x = xA avem u ( xA , t ) = 0 u0n = 0

Caz general u ( xA , t ) = u0n = usa ( xA , t ) = g1 (t )


0.0 0.7071 1.0 0.7071 0.0
x = xB avem u ( xB , t ) = 0 u Nn x = 0

Caz general u ( xB , t ) = uNn x = usa ( xB , t ) = g 2 (t )


15
III. Discretizarea conditiilor la limita

Conditie initila:
∂u ( x, 0)
t =0 = sin(π x)
0.0 0.0 ∂t
ui1 = ui0 + f 2 ( xi )∆t +
1  2 ui0+1 − 2ui0 + ui0−1  2
+ α + F ( xi 0  ∆t
, t )
2 ∆x 2

ui1 = ui0 + sin(π xi )0.6 +
0.0 1.0105 1.4291 1.0105 0.0

1  1 ui0+1 − 2ui0 + ui0−1  2


+  2  0.6
2π 0.25 2

i = 1, N x − 1 = 1,3
0.0 0.7071 1.0 0.7071 0.0

1  1 1 − 2 ⋅ 0.7071 + 0  2
i =1 → u11 = 0.7071 + sin(π ⋅ 0.25)0.6 +  2  0.6 = 1.0105
2π 0.25 2
 16
IV. Calculul solutiei numerice
uin +1 = 0.4722 ⋅ uin − uin −1 + 0.7639(uin+1 + uin−1 ) i = 1,3 n =1

0.0 0.9684 1.3696 0.9684 0.0


i =1 n =1

u12 = 0.4722 ⋅ u11 − u10 + 0.7639(u12 + u01 )

u23 = 0.4722 ⋅1.0105 − 0.7071


1.0105 1.4291 1.0105
0.0 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

17
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 Sa(x,t)
implicit none
real x,t,Sa
real pi
pi=4*atan(1.0)
Us=sin(pi*x)*(sin(t)+cos(t))
End function

END 18
Discretizare domeniu

x − xA ! Discretizare domeniu
∆x = B dx=(xB-xA)/(Nx-1);
N x −1
dt=(tf-ti)/(Nt-1);
xi = x A + i∆x
Do i=1,Nx
x(i)=xA+dx*i
t f − ti
∆t = EndDo
Nt − 1
t n = ti + n∆ t Do n=1,Nt
t(n)=ti+dt*n
EndDo
i = 1, N x n = 1, Nt

19
Impunerea conditiilor la limita
! Conditii la limita
pi=4*atan(1.0)
Conditie initila: lambda=dt*dt/dx/dx/pi/pi;

ui ,1 = sin(π xi ) i = 0, N x Do i=0,Nx
u(I,0)=Us(x(i),t(0))
EndDo
ui1 = ui0 + sin(π xi )∆t +
1  2 ui0+1 − 2ui0 + ui0−1  2 Do i=1,Nx-1
+ α  ∆t U(i,1)=U(i,0)+F1(x(i))*dt &
2 ∆x 2
 +0.5*(u(i+1,0)-2*u(i,0)+u(i-1,0))*lambda
i = 1, N x − 1 EndDo

Conditii la limita: Do n=2,Nt


u(0,n)=Us(x(0),t(n))
u(Nx,n)=Us(x(Nx),t(n))
uin = 0 u Nn x = 0 n = 1, Nt EndDo

20
Calculul solutie numerice

uin +1 = 2uin (1 − λ ) − uin −1 + λ (uin+1 + uin−1 )

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

! Calculul solutiei numerice


Do n=1,Nt-1
Do i=1,Nx-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

21

You might also like