Está en la página 1de 32

Ecuatia eliptica

Aplicatie

Ecuatia:  2u  2u
 0 x  [ xA , xB ] si y  [ y A , yB ]
x 2 y 2
Domeniul de definitie:
Conditii la limita:
Frontiera V: x  xA avem u  gV ( y )  xA2  y 2
Frontiera E: x  xB avem u  g E ( y )  xB2  y 2
Frontiera S: y  y A avem u  g S ( x)  x 2  y A2
Frontiera N: y  yB avem u  g N ( x)  x 2  yB2

u12,2  0
Utilizând metoda Gauss–Seidel    
u1 u12,2   0
Valorile initiale pentru necunoscute sunt zero u1  0
 4,2   
Ecuatia eliptica

Ecuatia Laplace/Poisson:  2 u 2  2u
c  F ( x, y )
x 2
y 2

Domeniul de definitie: x  [ xA , xB ] si y  [ y A , yB ]

Conditii la limita: se pun pe frontiera domeniului


x  xA avem u  g y1 ( y )  gV ( y ) y  y A avem u  g x1 ( x)  g S ( x)
x  xB avem u  g y 2 ( y )  g E ( y) y  yB avem u  g x 2 ( x)  g N ( x)

Veriticare tip ecuatie:


 2u  2u  2u u u
A 2 B C 2  D  E  Fu  G  0
x xy y x y
Avem: A = 1 si C = c2 B 2  4 AC  0  4 1 c 2  0
Ecuatia eliptica

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 !!!
II. Discretizarea domeniului
y ui , j  u ( xi , y j )
yA
i  1, N x
j  1, N y

ui , j  ?

xi  ?
yB yj  ?

xA xB x

x  xA yB  y A
x  B xi  x A  (i  1) x y  y j  y A  ( j  1)y
N x 1 N y 1
I. Discretizarea ecuatiei

Derivata de ordinul II

y  f ( x) d 2 y ( xi ) yi 1  2 yi  yi 1
yi  
dx 2
x 2

y u u  u ( x, y )

Notatie: ui , j  u ( xi , y j )

d 2ui , j ui 1, j  2ui , j  ui 1, j d 2ui , j ui , j 1  2ui , j  ui , j 1


 
dx 2
x 2 dy 2 y 2
I. Discretizarea ecuatiei

y d 2ui , j ui 1, j  2ui , j  ui 1, j


yA

dx 2
x 2

d 2ui , j ui , j 1  2ui , j  ui , j 1
yB 
dy 2
y 2
xA xB x

 2 u 2  2u ui 1, j  2ui , j  ui 1, j ui , j 1  2ui , j  ui , j 1


c  F ( x, y )   c2  F ( xi , y j )
x 2
y 2
x 2
y 2
III. Discretizarea conditiilor la limita

u ( xi , yN y )  g N ( xi )
u  g N ( x)

u  gV ( y )
u  g E ( y)

u ( x1 , y j )  gV ( y j ) u ( xN x , y j )  g E ( y j )

u  g S ( x) i  1, N x
u ( xi , y1 )  g S ( xi ) j  1, N y
IV. Calculul solutiei numerice
ui 1, j  2ui , j  ui 1, j ui , j 1  2ui , j  ui , j 1
c 2
 F ( xi , y j ) i  2, N x  1 j  2, N y  1
x 2
y 2

x 2
notatie  c 2

y 2
2ui , j (1   )  ui 1, j  ui 1, j  ui , j 1   ui , j 1  F ( xi , y j )x 2

i2 j2 cunoscute


2u2,2 (1   )  u3,2  u1,2   u2,3  u2,1  F ( x2 , y2 )x 2

i  3 j 1

2u3,2 (1   )  u4,2  u2,2   u3,3  u3,1  F ( x3 , y2 )x 2

Rezulta un sistem de ecuatii lineare


Exemplu

Ecuatia :  2u  2u
 2 0
x 2
y
Domeniul de definitie: x  [0, 0.1] si y  [0,0.1]

Conditii la limita:

Frontiera E: x  0.0 avem u  gV ( y )   y 2


Frontiera V: x  0.1 avem u  g E ( y )  0.01  y 2

Frontiera N: y  0.1 avem u  g N ( x)  x 2  0.01


Frontiera S: y  0.0 avem u  g S ( x)  x 2
i  1,50 j  1,30
Verificarea solutie analitice

Ecuatia :  2u  2u
 2 0 Solutia analitica: u ( x, y )  x 2  y 2
x 2
y
Domeniul de definitie: x  [0, 0.1] si y  [0,0.1]

Verificarea ecuatiei:

 2u  2u
2  2 22  0
x 2
y 2

Verificarea conditii la limita:

Frontiera E: x  0 avem u (0, y )  02  y 2  g E ( y )


Frontiera V: x  0.1 avem u (0.1, y )  0.12  y 2  gV ( y )
Frontiera N: y  0.1 avem u ( x,0.1)  x 2  0.12  g N ( x)
Frontiera S: y  0 avem u ( x,0)  x 2  02  g S ( x)
I. Discretizarea ecuatiei

ui 1, j  2ui , j  ui 1, j ui , j 1  2ui , j  ui , j 1 i  2, 4 j2


 c2  F ( xi , y j )
x 2
y 2

x 2 0.0252
 c 2
 1 2
 0.25
y 2 0.05 2

 2 u 2  2u  2 u  2u F ( xi , y j )  0
c  F ( x, y)  2 0
x 2
y 2
x y
2
c2  1

2ui , j (1   )  ui 1, j  ui 1, j  ui , j 1  ui , j 1  x 2 F ( xi , y j )

Rezulta un sistem de ecuatii lineare:


2.5ui , j  ui 1, j  ui 1, j  0.25(ui , j 1  ui , j 1 )  0 i  2, 4 j2

Caz general: i  2, N x  1 j  2, N y  1 Numarul de ecuatii: N  ( N x  2)( N y  2)


II. Discretizarea domeniului

xB  x A 0.1  0
x    0.025 xi  x A  (i  1)x
N x 1 5 1 i  1,5 j  1,3
y  y A 0.1  0 xi  0  0.025(i  1)
y  B   0.05
N y 1 3 1
 0 
0.01
0.025
 
x   0.05 
0.075
 
 0.01 
0.05 y j  y A  ( j  1)y
y j  0  0.05( j  1)

 0 
 
y  0.05 
0.0  0.1 
0.0 0.025 0.05 0.075 0.1  
III. Discretizarea conditiilor la limita
Frontiera V: u  gV ( y )   y 2

u ( x1 , y j )   y 2j u0, j   y 2j
-0.01 -0.0094 -0.0075 -0.0044 0.0

Frontiera E: u  g E ( y )  0.01  y 2
uNx , j  0.01  y 2j

Pentru frontiera E si V: j  1, N y
-0.0025 0.0075
Frontiera N: u  g N ( x)  x 2  0.01

ui , N y  xi 2  0.01

Frontiera S: u  g S ( x)  x 2
0.0 0.0006 0.0025 0.0056 0.01
ui ,1  xi2

Pentru frontiera N si S: i  1, N x
IV. Calculul solutiei numerice
2ui , j (1  0.25)  ui 1, j  ui 1, j  0.25ui , j 1  0.25ui , j 1  0 i  2, 4 j2

i2 j2
2.5u2,2  u3,2  u1,2  0.25u2,3  0.25u2,1  0
2.5u2,2  u3,2  (0.0025)  0.25(0.0094)  0.25(0.006)  0

i3 j2
2.5u3,2  u4,2  u2,2  0.25u3,3  0.25u3,1  0
2.5u3,2  u4,2  u2,2  0.25(0.0075)  0.25(0.0025)  0

i4 j2
2.5u4,2  u5,2  u3,2  0.25u4,3  0.25u4,1  0
2.5u4,2  (0.0075)  u3,2  0.25(0)  0.25(0.01)  0
IV. Calculul solutiei numerice
 2.5 1 0  u2,2   0.0047  u2,2  0.0019 
 1  u    0.0013     
 2.5 1 u 
 3,2   0.0000 
   3,2   
u   0.0031 
 0 1 2.5 u4,2  0.0078  4,2   

-0.01 -0.0094 -0.0075 -0.0044 0.0

0.0
vex  vap  
err  100  0.0
vex 0.0
 
-0.0025 -0.0019 -0.00 0.0031 0.0075

0.0 0.0006 0.0025 0.0056 0.01


Metoda Gauss–Seidel

Ax  b Sistem de ecuații linear cu N necunoscute

(L  D  R ) x  b Lx k 1  Dxk 1  Rx k  b

Lx  Dx  Rx  b x k 1  D1  b  Lx k 1  Rx k 

i 1 N
 x  0 
1
1 bi   L i , j x k 1
j   R i , j x kj
 1    j 1 j i 1
 x2  0  xik 1 
 x1  0  Ai ,i
 
x1   3    
...  ... relatia este echivalenta cu:
 x1  0 
 N 1    i 1 N
 x1N  0  bi   A i , j x k 1
j   A i , j x kj
j 1 j  i 1
xik 1 
Ai ,i
IV. Calculul solutiei numerice

2ui , j (1   )  ui 1, j  ui 1, j   ui , j 1  ui , j 1  F ( xi , y j ) x 2 i  2, N x  1 j  2, N y  1

x 2 i  2, 4 j2
notatie  c 2

y 2
i2 j2 cunoscute
2u2,2 (1   )  u3,2  u1,2   u2,3  u2,1  F ( x2 , y2 )x 2

i 3 j 2
2u3,2 (1   )  u4,2  u2,2   u3,3  u3,1  F ( x3 , y2 )x 2

i4 j2
2u4,2 (1   )  u5,2  u3,2   u4,3  u4,1  F ( x3 , y2 ) x 2

Rezulta un sistem u2,2 


 
de ecuatii lineare u  u3,2 
Au=b u 
 4,2 
IV. Calculul solutiei numerice

Au  b

 2(1   ) 1 0  2,2 u   F ( x2 , y 2 ) x 2
 u1,2  u2,3   u2,1 
 ...     
 ... ... u3,2   ... 
 ... ... ... u4,2  ... 
 
Metoda Gauss–Seidel i 1 N
bi   A i , j x k 1
j   A i , j x kj
k 1 j 1 j  i 1
Pentru un sistem de 3 ecuatii x i 
Ai ,i
cu 3 necunoscute

Pentru cazul general Pentru cazul nostru

k 1 b1  0  A 1,2 x2k  A 1,3 x3k k 1 b1  0  A 1,2u3,2


k
 A 1,3u4,2
k

x1  u 2,2 
A1,1 A1,1

 x1  u2,2 
b2  A 2,1 x1k 1  A 2,3 x3k     k 1
x2k 1  x   x2   u3,2  u3,2  ...
A2,2
  u 
 x3   4,2 

k 1 b3  A 3,1 x1k 1  A 3,2 x2k 1 k 1


u4,2  ...
x 3 
A3,3
FORMULE DE CALCUL
Sistemul linear de ecuatii

Au  b

 2(1   ) 1 0  2,2 u   F ( x2 , y 2 ) x 2
 u1,2  u2,3   u2,1 
 ...     
 ... ... u3,2   ... 
 ... ... ... u4,2  ... 
 
i 1 N
bi   A i , j x k 1
j   A i , j x kj
k 1 j 1 j  i 1
x i 
Ai ,i
Metoda Gauss–Seidel

Aproximatia 1 Aproximatia 2 Aproximatia 3


(k=1) (k=2) (k=3)
b1  0  A 1,2u3,2
1
 A 1,3u14,2 b1  0  A 1,2u3,2
2
 A 1,3u4,2
2

u12,2  0 2
u2,2  3
u2,2 
A1,1 A1,1

b2  A 2,1u2,2
2
 A 2,3u14,2
1
u3,2 0 u 2
3,2  3
u3,2  ...
A2,2

u14,2  0 2
u4,2  ... 3
u4,2  ...
Program
Program

PROGRAM ecuatie_eliptica
implicit none
! I. Declarare ! III. Calcul
… ! discretizare domeniu
! II. Initializare …
… ! impunerea conditiilor la limita
! III. Calcul …
… ! Formarea sistemul Ax=b
! IV. Afisare (salvare) …
… ! Rezolvarea sistemului Ax=b
CONTAINS ! (metoda iterativa)

!===================
Function Us(x,y)
implicit none
real x,y,Us
Us=x*x-y*y
End function

END
Program
PROGRAM ecuatie_eliptica

CONTAINS

!===================
function gN(x)
implicit none
real*8:: x,gN

gN=x*x-yB*yB
endfunction

!===================
function gS(x)
implicit none
real*8:: x,gS

gS=x*x-yA*yA
endfunction


END
Discretizare domeniu

x  xA ! Discretizare domeniu
x  B dx=(xB-xA)/(Nx-1);
N x 1
dy=(yB-yA)/(Ny-1);
xi  x A  x(i  1)
Do i=1,Nx
x(i)=xA+dx*(i-1)
yB  y A
y  EndDo
N y 1
y j  y A  y ( j  1) Do j=1,Ny
y(j)=yA+dy*(j-1)
EndDo
i  1, N x j  1, N y
Impunerea conditiilor la limita

V: x  xA avem u  g y1 ( y ) ! Conditii la limita


u1, j   y 2j
Do j=1,Ny
E: x  xB avem u  g y 2 ( y ) u(1,j)=gS(x(1),y(j))
u(Nx,j)=gN(x(Nx),y(j))
uNx , j  0.01  y 2j EndDo

j  1, N y Do i=2,Nx-1
u(i,1)=gV(x(i),y(1))
u(i,Ny)=gE(x(i),y(Ny))
N: y  y A avem u  g x1 ( x) EndDo
ui , N y  xi 2  0.01

S: y  yB avem u  g x 2 ( x)
ui ,1  xi2

i  2, N x  1
Formarea sistemul Ax=b
2ui , j (1   )  ui 1, j  ui 1, j  ui , j 1  ui , j 1  x 2 F ( xi , y j )

i  2, N x  1 j  2, N y  1 ! Formarea sistemul Ax=b


lambda=dx*dx/dy/dy;
Avem cinci zone distincte Do i=2,Nx-1
Do j=2,Ny-1

!n=(i-1)*Nx+j
n=Nij(i,j)

A(n,n)=-2*(1+lambda)
A(n,n+1)=1
A(n,n-1)=1
A(n,n+N)=lambda
A(n,n-N)=lambda
b(n)=F(x(i),y(j))
EndDo
EndDo
Formarea sistemul Ax=b
2ui , j (1   )  ui 1, j  ui 1, j  ui , j 1  ui , j 1  x 2 F ( xi , y j )

! Formarea sistemul Ax=b



Do i=1,Nx
!S
j=1
n=Nij(i,j)
b(n)=U(i,j)
A(n,n)=1;

!N
j=Ny
n=Nij(i,j)
b(n)=U(i,j)
A(n,n)=1
EndDo
Formarea sistemul Ax=b
2ui , j (1   )  ui 1, j  ui 1, j  ui , j 1  ui , j 1  x 2 F ( xi , y j )

! Formarea sistemul Ax=b



Do j=2,Ny-1
!V
i=1
n=Nij(i,j)
b(n)=U(i,j)
A(n,n)=1

!E
i=Nx
n=Nij(i,j)
b(n)=U(i,j)
A(n,n)=1
EndDo
Rezolvarea sistemului

Se poate folosi orice metoda de ! Rezolvarea sistemului Ax=b


rezolvare a sistemelor de ecuatii ! (metoda iterativa)
lineare. ! Solutia sistemului este in
! variabila sol
De preferat metodele iterative.

Do i=2:M-1
Do j=2:N-1
n=(i-1)*N+j
U(i,j)=sol(n)
function Nij(i,j)
EndDo
implicit none
EndDo
integer Nij,i,j

! Numai daca numaratoare


! incepe de la 1
Nij= =(i-1)*Ny+j
endfunction

También podría gustarte