Professional Documents
Culture Documents
∂ 2u 2 ∂ u
2
−α = F ( x, t )
∂t 2
∂x 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 )
3
I. Discretizarea ecuatiei
t
d 2uin uin+1 − 2uin + uin−1
T =
dx 2
∆x 2
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
∂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
i =1 n =1
i = 1, N x − 1
8
IV. Calculul solutiei numerice – forma explicita
∆t 2
notatie λ = α 2 < 1
2
uin +1 = 2uin − uin −1 + λ (uin+1 − 2uin + uin−1 ) + F ( xi , tn )∆t 2
∆x
i =1 n =1
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
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
∆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
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
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
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
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
20
Calculul solutie numerice
i = 1, N x − 1 n = 1, Nt − 1
21