laplace simpla

13
MS6, Ecuaţia lui Laplace Mișcarea potenţială plană a unui fluid într-o incintă dreptunghiulară, fără pereţi interiori, cu o intrare și o ieșire, rezolvată în GNU Octave și în MATLAB 1 MIŞCAREA POTENŢIALĂ PLANĂ A UNUI FLUID – ECUAŢIA LUI LAPLACE Se consideră mişcarea potenţială plană a unui fluid în domeniul de coordonate xOy. Viteza fluidului derivă din potenţialul , adică: Ecuaţia continuităţii se scrie , adică , de unde rezultă: care reprezintă ecuaţia lui Laplace pentru potenţialul vitezei . Condiţiile Cauchy-Riemann se scriu: şi unde este funcţia de curent. Curba de-a lungul căreia potenţialul vitezei are valoare constantă se numește linie echipotenţială, iar curba de-a lungul căreia funcţia de curent are valoare constantă se numește linie de curent. Liniile echipotenţiale sunt ortogonale liniilor de curent și împreună formează spectrul mișcării potenţiale a fluidului în domeniul plan considerat. Ţinând seama de aceste condiţii, ecuaţia lui Laplace se poate scrie: care reprezintă ecuaţia lui Laplace pentru funcţia de curent . MIŞCAREA POTENŢIALĂ PLANĂ A UNUI FLUID ÎNTR-UN DOMENIU DREPTUNGHIULAR FĂRĂ PEREŢI INTERIORI, AVÂND O SINGURĂ INTRARE ȘI O SINGURĂ IEȘIRE ENUNŢUL PROBLEMEI Fie mişcarea potenţială plană a apei printr-o incintă rectangulară, având lungimea m pe direcţia Ox şi lăţimea m pe direcţia Oy (vezi figurile 1 și 3). Intrarea fluidului se face prin fereastra AB din partea de sus a peretelui din stânga, iar ieşirea prin fereastra CD din partea de jos a peretelui din dreapta, ambele ferestre având lăţimea m. Debitul de alimentare este . a) Pentru o discretizare rară a domeniului de calcul, ca în figura 1, se cere să se determine valorile funcţiei de curent în nodurile interioare ale reţelei, atât cu metoda iterativă a lui Dirichlet, cât și cu metoda directă, cu ecuaţiile scrise în diferenţe finite centrate. Să se traseze grafic 9 linii de curent (în figura 2), cu valorile , , ..., . b) Pentru o discretizare fină a domeniului de calcul, ca în figura 3, se cere să se determine valorile funcţiei de curent în nodurile interioare ale reţelei cu metoda iterativă a lui Dirichlet, în diferenţe finite centrate. Să se traseze 19 linii de curent (în figura 4), de la , la

Upload: ionutgrecu

Post on 30-Sep-2015

284 views

Category:

Documents


0 download

DESCRIPTION

Ecuatia Laplace

TRANSCRIPT

  • MS6, Ecuaia lui Laplace Micarea potenial plan a unui fluid ntr-o incint dreptunghiular, fr perei interiori, cu o intrare i o ieire, rezolvat n GNU Octave i n MATLAB

    1

    MICAREA POTENIAL PLAN A UNUI FLUID ECUAIA LUI LAPLACE Se consider micarea potenial plan a unui fluid n domeniul de coordonate xOy. Viteza fluidului deriv din potenialul , adic:

    Ecuaia continuitii se scrie , adic , de unde rezult:

    care reprezint ecuaia lui Laplace pentru potenialul vitezei . Condiiile Cauchy-Riemann se scriu:

    i

    unde este funcia de curent. Curba de-a lungul creia potenialul vitezei are valoare constant se numete linie echipotenial, iar curba de-a lungul creia funcia de curent are valoare constant se numete linie de curent. Liniile echipoteniale sunt ortogonale liniilor de curent i mpreun formeaz spectrul micrii poteniale a fluidului n domeniul plan considerat. innd seama de aceste condiii, ecuaia lui Laplace se poate scrie:

    care reprezint ecuaia lui Laplace pentru funcia de curent . MICAREA POTENIAL PLAN A UNUI FLUID NTR-UN DOMENIU DREPTUNGHIULAR FR

    PEREI INTERIORI, AVND O SINGUR INTRARE I O SINGUR IEIRE ENUNUL PROBLEMEI Fie micarea potenial plan a apei printr-o incint rectangular, avnd lungimea m pe direcia Ox i limea m pe direcia Oy (vezi figurile 1 i 3). Intrarea fluidului se face

    prin fereastra AB din partea de sus a peretelui din stnga, iar ieirea prin fereastra CD din partea de jos a peretelui din dreapta, ambele ferestre avnd limea m. Debitul de alimentare este . a) Pentru o discretizare rar a domeniului de calcul, ca n figura 1, se cere s se determine valorile funciei de curent n nodurile interioare ale reelei, att cu metoda iterativ a lui Dirichlet, ct i cu metoda direct, cu ecuaiile scrise n diferene finite centrate. S se traseze grafic 9 linii de curent (n figura 2), cu valorile , , ..., . b) Pentru o discretizare fin a domeniului de calcul, ca n figura 3, se cere s se determine valorile funciei de curent n nodurile interioare ale reelei cu metoda iterativ a lui Dirichlet, n diferene finite centrate. S se traseze 19 linii de curent (n figura 4), de la , la

  • MS6, Ecuaia lui Laplace Micarea potenial plan a unui fluid ntr-o incint dreptunghiular, fr perei interiori, cu o intrare i o ieire, rezolvat n GNU Octave i n MATLAB

    2

    , cu pas egal cu 5, dar s se scrie pe grafic doar valorile ,..., . S se calculeze viteza n nodurile principale ale reelei, apoi s se traseze vectorii vitez (n figura 5) cu funcia GNU Octave / MATLAB denumit quiver. Observaie: Pentru a obine debitul Q, liniile de curent de-a lungul pereilor incintei au urmtoarele valori constante: pe pereii colorai cu albastru n figurile 1 i 3, respectiv pe pereii colorai cu rou. DISCRETIZAREA RAR A DOMENIULUI DE CALCUL Discretizarea domeniului de calcul se va efectua n conformitate cu sensul de parcurgere al unei reele plane n GNU Octave i MATLAB, anume: plecnd din colul stnga-sus al reelei, se va parcurge reeaua de la stnga la dreapta, respectiv de sus n jos. Astfel, se discretizeaz domeniul de calcul n 4 linii orizontale notate cu indicii (deci limea se mparte n intervale egale) i 5 linii verticale, notate cu indicii

    (deci lungimea se mparte n intervale egale). Numerotarea ncepe din colul stnga-sus al reelei, cu i de sus n jos i cu j de la stnga la dreapta. Rezult reeaua de linii din figura 1. Paii de discretizare dup Ox i Oy sunt: i . Conform datelor problemei, rezult m.

    Fig. 1 Discretizarea rar a domeniului de calcul

    Ecuaia lui Laplace pentru funcia de curent se scrie n diferene finite centrate astfel:

    Q

    Q

    n,j

    = Q

    i,1

    = Q

    1,j

    = 0

    i,m

    = 0

    j=1 j=2 j=m=5

    i=1

    i=2

    i=3

    i=n=4j=3 j=4

    x=0 x=4

    y=0

    y=3

    3,2

    3,3

    3,4

    2,2

    2,3

    2,4

    A

    B

    C

    D

  • MS6, Ecuaia lui Laplace Micarea potenial plan a unui fluid ntr-o incint dreptunghiular, fr perei interiori, cu o intrare i o ieire, rezolvat n GNU Octave i n MATLAB

    3

    Pentru , rezult:

    (1)

    Aceast relaie se aplic n cele 6 noduri interioare (i,j) ale reelei din figura 1, mai exact pentru i . Condiiile la limite pentru reeaua considerat se scriu astfel:

    pentru (pe peretele albastru de sus);

    pentru (pe peretele albastru din dreapta); pentru (pe peretele rou din stnga);

    pentru (pe peretele rou de jos).

    REZOLVAREA ECUAIEI LUI LAPLACE PRIN METODA ITERATIV A LUI DIRICHLET, PENTRU REEAUA RAR DIN FIGURA 1 ntr-o prim aproximaie, numit aproximaia iniial i notat aici cu exponentul ,

    se aleg valori pentru funciile de curent

    n toate nodurile interioare ale reelei (6

    noduri), adic pentru i . Pentru calculul iterativ, relaia (1) va fi scris sub form explicit n felul urmtor:

    (2)

    unde (k+1) este iteraia curent, (k) este iteraia precedent, iar . Parcurgnd reeaua de la stnga la dreapta i de sus n jos, se aplic relaia (2) iterativ, pentru ., n cele 6 noduri interioare (i,j) ale reelei din figura 1, innd seama de condiiile la limite definite anterior. Calculul iterativ se va opri atunci cnd de la o iteraie la alta, eroarea relativ dintre valorile variabilei n noduri scade sub o valoare impus, adic:

    Fie , care corespunde unei precizii de zecimale exacte, conform

    formulei: [%].

    n cadrul unui program elaborat pentru rezolvarea problemei, oprirea calculului iterativ la

    atingerea preciziei impuse

    necesit utilizarea unui ciclu cu test iniial (bucl de

    tip while). Pentru a simplifica scrierea programului, relaia (2) se va rezolva ntr-un ciclu cu

    contor (bucl de tip for), pentru unde, de exemplu, . Pentru aceast problem simpl, dup cum se va vedea din rezultatele obinute, convergena va fi atins pentru . Pentru , eroarea maxim este de %. PROGRAMUL DE CALCUL ELABORAT N GNU OCTAVE:

    % METODA ITERATIVA PENTRU REZOLVAREA ECUATIEI LUI LAPLACE % MISCAREA POTENTIALA INTR-O INCINTA PLANA SIMPLA. Discretizarea domeniului printr-o RETEA RARA n = 4; % numar de linii orizontale (indice i) m = 5; % numar de linii verticale (indice j) Q = 100;

  • MS6, Ecuaia lui Laplace Micarea potenial plan a unui fluid ntr-o incint dreptunghiular, fr perei interiori, cu o intrare i o ieire, rezolvat n GNU Octave i n MATLAB

    4

    % APROXIMATIA INITIALA (pentru k=0) IN NODURILE INTERIOARE: for j = 2:m-1 for i = 2:n-1 psi(i,j) = 0; psi_e(i,j) = 0; % variabila necesara pentru calculul erorii endfor endfor % CONDITIILE LA LIMITE PE FRONTIERELE DOMENIULUI: for j = 1:m psi(1,j) = 0; psi(n,j) = Q; endfor for i = 2:3 psi(i,1) = Q; psi(i,m) = 0; endfor psi_initial = psi % afisarea valorilor initiale ale lui psi % CALCULUL ITERATIV IN NODURILE INTERIOARE ALE RETELEI: kmax = 15; for k = 1:kmax contor = k for j = 2:m-1 for i = 2:n-1 psi(i,j) = (psi(i-1,j)+psi(i+1,j)+psi(i,j-1)+psi(i,j+1))/4; epsilon(i,j) = 100*abs(psi(i,j)-psi_e(i,j))/(eps+psi(i,j)); % eps = 2.2204e-016; evita divizarea cu zero cand psi=0 psi_e(i,j) = psi(i,j); endfor endfor eroare_max = max(epsilon) endfor % AFISAREA REZULTATELOR: functia_curent = psi % pentru toate nodurile retelei eroarea_relativa = epsilon % doar pentru nodurile interioare % REPREZENTAREA GRAFICA A CELOR 9 LINII DE CURENT: % GNU Octave (si MATLAB) deseneaza variatia lui psi in oglinda fata de reteaua din figura 1. % Deci pentru trasarea liniilor de curent, matricea psi calculata trebuie rotita cu 90 grade, apoi transpusa, % apoi rotita iar cu 180 grade: psi = rot90(psi); psi = psi'; psi = rot90(psi); psi = rot90(psi); % trasarea liniilor de curent: hold on v = 10:10:90; % cele 9 valori psi=const. cerute, de la 10 la 90, cu pas = 10 [C,h] = contour(psi,v); colormap([0 0.5 0.6]) % schimba colormap de la combinatia "jet", la setarea RGB data: [0 0.5 0.6] axis([1 5 1 4]) % fixarea domeniului cu lungime de 4 unitati pe Ox si latime de 3 unitati pe Oy axis off plot([1 5 5],[4 4 2],'b','linewidth',2) % frontiera albastra cu psi=0 plot([1 1 5],[3 1 1],'r','linewidth',2) % frontiera rosie cu psi=Q title('Liniile \psi = const. pentru discretizarea rara a domeniului') % SALVAREA FIGURII CU NUMELE psi_domeniu_rar SI DIFERITE EXTENSII: % cu extensia emf (Microsoft Enhanced Metafile/ recomandate pentru inserare in MS Office): print('psi_domeniu_rar.emf','-demf') % cu extensia png (Portable Network Graphic):

  • MS6, Ecuaia lui Laplace Micarea potenial plan a unui fluid ntr-o incint dreptunghiular, fr perei interiori, cu o intrare i o ieire, rezolvat n GNU Octave i n MATLAB

    5

    print('psi_domeniu_rar.png','-dpng') % cu extensia eps (Encapsulated PostScript, Level 2 Color): print('psi_domeniu_rar.eps','-depsc2') % Nota: figurile.eps au cea mai buna rezolutie si pot fi vizualizate cu GSview, care este free software. % Chiar daca GSview nu este instalat, figurile.eps pot fi inserate in MS Office cu Insert Picture/ From file/ ...

    PROGRAMUL DE CALCUL ELABORAT N MATLAB: Programul seamn n general cu cel elaborat n GNU Octave, dar are urmtoarele diferene: Ciclurile cu contor, de tip for, se termin cu end n MATLAB (nu cu endfor ca n Octave),

    de exemplu: % APROXIMATIA INITIALA IN NODURILE INTERIOARE: for j = 2:m-1 for i = 2:n-1 psi(i,j) = 0; psi_e(i,j) = 0; % variabila necesara pentru calculul erorii end end

    Pe lng funcia contour, se poate folosi i funcia clabel n MATLAB (pentru a insera etichete pe grafic), de exemplu: hold on v=10:10:90; % cele 9 valori psi=const. cerute, de la 10 la 90, cu pas = 10 [C,h]=contour(psi,v); clabel(C,h); colormap([0 0.5 0.6]) % schimba colormap de la combinatia "jet", la setarea RGB data: [0 0.5 0.6]

    Salvarea graficelor cu funcia print se realizeaz cu alt sintax n MATLAB, fa de sintaxa din Octave (n MATLAB, salvarea graficelor se poate realiza i din meniu, cu extensia dorit: File/ Save as ...); liniile de program aferente sunt urmtoarele: % SALVAREA FIGURII CU NUMELE psi_domeniu_rar SI DIFERITE EXTENSII: % cu extensia emf (Microsoft Enhanced Metafile/ recomandate pentru inserare in MS Office) print -dmeta psi_domeniu_rar.emf % cu extensia png (Portable Network Graphic) print -dpng psi_domeniu_rar.png % cu extensia eps (Encapsulated PostScript, Level 2 Color) print -depsc2 psi_domeniu_rar.eps % Nota: figurile.eps au cea mai buna rezolutie si pot fi vizualizate cu GSview, care este free software.

    REZULTATELE OBINUTE PRIN METODA ITERATIV A LUI DIRICHLET, PENTRU REEAUA RAR DIN FIGURA 1 Reeaua de linii din figura 1 este o reea rar, cu 4 linii i 5 coloane, deci cu de noduri, dintre care, 14 sunt noduri pe frontier (unde se cunosc condiiile la limite), iar 6 sunt noduri interioare, unde se determin prin calcul iterativ valorile necunoscute ale funciei de curent , pentru i .

    Valorile iniiale ale funciei de curent

    , pentru i sunt definite n

    matricea:

  • MS6, Ecuaia lui Laplace Micarea potenial plan a unui fluid ntr-o incint dreptunghiular, fr perei interiori, cu o intrare i o ieire, rezolvat n GNU Octave i n MATLAB

    6

    Valorile finale ale funciei de curent

    , obinute iterativ pentru , sunt

    definite n matricea:

    Eroarea relativ maxim obinut la final, pentru , este mai mic dect

    eroarea admisibil, anume: . Convergena a

    fost de fapt atins la a 12-a iteraie, unde eroarea relativ maxim obinut a fost:

    .

    n figura 2 sunt trasate cele 9 linii de curent, de-a lungul crora funcia de curent are valori constante, egale cu , , ..., .

    Fig. 2 Traseul celor 9 linii de curent, pentru discretizarea rar a domeniului de calcul

    REZOLVAREA NUMERIC A ECUAIEI LUI LAPLACE PRIN METODA DIRECT, PENTRU REEAUA RAR DIN FIGURA 1 Se scrie relaia (1) pentru fiecare dintre cele 6 noduri interioare (i,j) ale reelei din figura 1, pentru i . Se nlocuiesc valorile funciei de curent pe frontierele domeniului.

    10

    10

    10

    10

    20

    20

    20

    20

    30

    30

    30

    30

    40

    40

    40

    40

    50

    50

    50

    50

    60

    60

    60

    60

    70

    70

    70

    70

    80

    80

    80

    80

    90

    90

    9090

    Liniile = const. pentru discretizarea rara a domeniului

    = Q = 100

    =

    Q =

    100

    =

    0

    = 0

    Q

    Q

  • MS6, Ecuaia lui Laplace Micarea potenial plan a unui fluid ntr-o incint dreptunghiular, fr perei interiori, cu o intrare i o ieire, rezolvat n GNU Octave i n MATLAB

    7

    Rezult astfel un sistem de 6 ecuaii liniare, avnd ca necunoscute cele 6 funcii din

    nodurile interioare. Pentru scrierea sistemului de ecuaii liniare, relaia (1) se pune sub forma:

    (3)

    De exemplu, pentru , relaia (3) devine:

    i nlocuind valorile cunoscute pe frontiere: , respectiv , rezult:

    Procednd la fel n celelalte noduri interioare, se obine un sistem, care poate fi scris sub form matriceal: , unde A este matricea coeficienilor (o matrice rar, de dimensiuni , care are coeficieni egali cu 1 pe diagonala principal, iar pe fiecare linie sunt 2 sau 3 coeficieni egali cu -0.25, respectiv 3 sau 2 coeficieni egali cu 0), iar B este vectorul coloan al termenilor liberi ai celor 6 ecuaii. Vectorul coloan al celor 6 necunoscute este notat cu .

    Sistemul matriceal corespunztor este urmtorul:

    25

    25

    50

    0

    0

    25

    125.0025.000

    25.0125.0025.00

    025.010025.0

    25.000125.00

    025.0025.0125.0

    0025.0025.01

    34

    33

    32

    24

    23

    22

    Sistemul de 6 ecuaii liniare cu 6 necunoscute astfel obinut se rezolv la rndul su prin metode numerice specifice Algebrei liniare. n GNU Octave sau MATLAB, rezolvarea unui sistem de ecuaii liniare cu matricea coeficienilor ptratic se poate realiza cu urmtoarele comenzi: % Introducerea matricei A (se lasa spatii intre coeficienti si se pune punct si virgula la finalul liniei): A = [1 -0.25 0 -0.25 0 0; -0.25 1 -0.25 0 -0.25 0; 0 -0.25 1 0 0 -0.25; -0.25 0 0 1 -0.25 0; 0 -0.25 0 -0.25 1 -0.25; 0 0 -0.25 0 -0.25 1] % Introducerea vectorului coloana B: B = [25; 0; 0; 50; 25; 25] % U este vectorul coloan al necunoscutelor % SOLUTIA SISTEMULUI (componentele psi ale vectorului U) se poate obtine cu 2 comenzi: U = A\B % sau U = inv(A)*B % Rezulta: U = 53.6232 34.7826 20.2899 79.7101 65.2174 46.3768

  • MS6, Ecuaia lui Laplace Micarea potenial plan a unui fluid ntr-o incint dreptunghiular, fr perei interiori, cu o intrare i o ieire, rezolvat n GNU Octave i n MATLAB

    8

    Valorile funciei de curent obinute prin metoda direct pentru i sunt

    definite n matricea:

    Aceste valori sunt identice cu cele obinute prin metoda iterativ Dirichlet (valoarea lui difer la a 4-a zecimal, fiind 20.2899 n loc de 20.2898). DISCRETIZAREA FIN A DOMENIULUI DE CALCUL Discretizarea domeniului de calcul se va efectua n conformitate cu sensul de parcurgere al unei reele plane n GNU Octave i MATLAB, anume: plecnd din colul stnga-sus al reelei, se va parcurge reeaua de la stnga la dreapta, respectiv de sus n jos. Astfel, se discretizeaz domeniul de calcul n 31 de linii orizontale notate cu indicii (deci limea se mparte n de intervale egale) i 41 de linii

    verticale, notate cu indicii (deci lungimea se mparte n de intervale egale). Numerotarea ncepe din colul stnga-sus al reelei, cu i de sus n jos i cu j de la stnga la dreapta. Rezult reeaua de linii dese din figura 2. Paii de discretizare dup Ox i Oy sunt: i . Rezult m.

    Fig. 3 Discretizarea fin a domeniului de calcul

    Condiiile la limite pe frontierele solide ale reelei dese din figura 2 se scriu astfel: pentru (pe peretele albastru de sus);

    i=1

    i

    i=n=31j=1 j j=m=41

    1,1

    = 0

    2,1

    = 0.1Q

    6,1

    = 0.5Q

    10,1

    = 0.9Q

    11,1 = Q

    i,1

    = Q

    i,j

    n,j

    = Q

    1,j

    = 0

    i,m

    = 0

    21,41

    = 0

    22,41 = 0.1Q

    26,41

    = 0.5Q

    30,41

    = 0.9Q

    31,41 = Q

    Q

    Q

  • MS6, Ecuaia lui Laplace Micarea potenial plan a unui fluid ntr-o incint dreptunghiular, fr perei interiori, cu o intrare i o ieire, rezolvat n GNU Octave i n MATLAB

    9

    pentru (pe peretele albastru din dreapta); pentru (pe peretele rou din stnga); pentru (pe peretele rou de jos).

    Ferestrele de intrare i de ieire ale fluidului sunt frontiere fluide i sunt discretizate n figura 3 n zece intervale egale de mrime m. Este necesar s definim condiii la limite pe aceste frontiere fluide. n interiorul fiecrei ferestre sunt cte 9 noduri, n care vom presupune c funcia de curent ia valori ntre i prin interpolare liniar, astfel:

    la intrare: tiind c , rezult pentru ;

    la ieire: tiind c , rezult pentru . REZOLVAREA ECUAIEI LUI LAPLACE PRIN METODA ITERATIV A LUI DIRICHLET, PENTRU REEAUA FIN DIN FIGURA 2

    La aproximaia iniial, se aleg valori nule pentru funciile de curent:

    , n toate cele

    1131 de noduri interioare ale reelei, adic pentru

    i . Apoi, parcurgnd reeaua de la stnga la dreapta i de sus n jos, se aplic relaia (2) iterativ, n toate nodurile interioare (i,j) ale reelei din figura 2, innd seama de condiiile la limite (pe frontierele solide i pe cele fluide) definite anterior. Pentru a simplifica scrierea programului de calcul, relaia (2) se va rezolva ntr-un ciclu cu

    contor (bucl de tip for), pentru iteraii, unde . Convergena va fi atins atunci cnd, de la o iteraie la alta, eroarea relativ dintre valorile variabilei n fiecare nod scade sub o valoare impus (vezi explicaiile din

    cazul anterior, al reelei rare). PROGRAMUL DE CALCUL ELABORAT N GNU OCTAVE: % METODA ITERATIVA PENTRU REZOLVAREA ECUATIEI LUI LAPLACE % MISCAREA POTENTIALA INTR-O INCINTA PLANA SIMPLA. Discretizarea domeniului printr-o RETEA FINA n = 31; % numar de linii orizontale (indice i) m = 41; % numar de linii verticale (indice j) Q = 100; % APROXIMATIA INITIALA IN NODURILE INTERIOARE: for j = 2:m-1 for i = 2:n-1 psi(i,j) = 0; psi_e(i,j) = 0; % variabila necesara pentru calculul erorii endfor endfor % CONDITIILE LA LIMITE PE FRONTIERELE SOLIDE ALE DOMENIULUI: for j = 1:m psi(1,j) = 0; % perete sus psi(n,j) = Q; % perete jos endfor for i = 2:21 psi(i,m) = 0; % perete dreapta endfor for i = 11:30

  • MS6, Ecuaia lui Laplace Micarea potenial plan a unui fluid ntr-o incint dreptunghiular, fr perei interiori, cu o intrare i o ieire, rezolvat n GNU Octave i n MATLAB

    10

    psi(i,1) = Q; % perete stanga endfor % CONDITIILE LA LIMITE PE FRONTIERELE FLUIDE ALE DOMENIULUI: for i = 2:10 psi(i,1) = psi(i-1,1)+0.1*Q; % intrare endfor for i = 22:30 psi(i,41) = psi(i-1,41)+0.1*Q; % iesire endfor psi_initial = psi % afisare psi initial % CALCULUL ITERATIV IN NODURILE INTERIOARE ALE RETELEI: kmax = 750; for k = 1:kmax contor = k for j = 2:m-1 for i = 2:n-1 psi(i,j) = (psi(i-1,j)+psi(i+1,j)+psi(i,j-1)+psi(i,j+1))/4; epsilon(i,j) = 100*abs(psi(i,j)-psi_e(i,j))/(eps+psi(i,j)); % eps = 2.2204e-016; evita divizarea cu zero cand psi=0 psi_e(i,j) = psi(i,j); endfor endfor eroare_max = max(epsilon) endfor % REPREZENTAREA GRAFICA A CELOR 19 LINII DE CURENT: % GNU Octave (si MATLAB) deseneaza variatia lui psi in oglinda fata de reteaua din figura 3. % Deci pentru trasarea liniilor de curent, matricea psi calculata trebuie rotita cu 90 grade, apoi transpusa, % apoi rotita iar cu 180 grade: psi = rot90(psi); psi = psi'; psi = rot90(psi); psi = rot90(psi); % trasarea liniilor de curent: hold on v = 10:10:90; % valorile psi=const. care vor fi afisate pe grafic [C,h] = contour(psi,v); % clabel(C,h); % aceasta functie nu este implementata in GNU Octave, ci doar in MATLAB v1 = 5:10:95; % adaugarea liniilor de curent psi=5 pana la psi=95, cu pas = 10 [C1,h1] = contour(psi,v1); colormap([0 0.5 0.6]) % schimba colormap de la "jet", la setarea RGB data: [0 0.5 0.6] axis([1 m 1 n]) % extinderea domeniului [in decimetri] axis off plot([1 m m],[n n 11],'b','linewidth',2) % frontiera cu psi=0 plot([1 1 m],[21 1 1],'r','linewidth',2) % frontiera cu psi=Q title('Liniile \psi = const. pentru discretizarea fina a domeniului') % SALVAREA FIGURII CU NUMELE psi_domeniu_des SI DIFERITE EXTENSII: % cu extensia emf (Microsoft Enhanced Metafile/ recomandate pentru inserare in MS Office): print('psi_domeniu_des.emf','-demf') % cu extensia png (Portable Network Graphic): print('psi_domeniu_des.png','-dpng') % cu extensia eps (Encapsulated PostScript, Level 2 Color): print('psi_domeniu_des.eps','-depsc2')

    Eroarea relativ maxim obinut la final, pentru , este mai mic dect

    eroarea admisibil, anume: . Convergena a fost

  • MS6, Ecuaia lui Laplace Micarea potenial plan a unui fluid ntr-o incint dreptunghiular, fr perei interiori, cu o intrare i o ieire, rezolvat n GNU Octave i n MATLAB

    11

    de fapt atins la a 736-a iteraie, unde eroarea relativ maxim obinut a fost:

    .

    n figura 4 sunt trasate cele 19 linii de curent, de-a lungul crora funcia de curent are valori constante. Sunt trecute valorile , , ..., de-a lungul liniilor de curent corespunztoare. PROGRAMUL DE CALCUL ELABORAT N MATLAB: Programul seamn n general cu cel elaborat n GNU Octave, dar are diferenele specificate anterior, la cazul discretizrii rare a domeniului de calcul.

    Fig. 4 Traseul celor 19 linii de curent, pentru discretizarea deas a domeniului de calcul

    CALCULUL VITEZEI N NODURILE PRINCIPALE ALE REELEI DESE DIN FIGURA 3

    Componentele vitezei,

    i

    , se determin (att n GNU Octave, ct i n

    MATLAB) cu funcia gradient. Apoi viteza n fiecare nod se determin cu formula:

    Liniile de program GNU Octave care permit calcularea vitezei i care trebuie adugate la finalul programului anterior, dup linia de comand hold on, sunt urmtoarele:

    10

    10

    10

    10

    20

    20

    20

    20

    30

    30

    30

    30

    40

    40

    40

    40

    50

    50

    50

    50

    60

    60

    60

    60

    70

    70

    70

    70

    8080

    80

    80

    90

    90

    9090

    Liniile = const. pentru discretizarea fina a domeniului

    = Q = 100

    =

    Q =

    100

    = 0

    =

    0

    Q

    Q

  • MS6, Ecuaia lui Laplace Micarea potenial plan a unui fluid ntr-o incint dreptunghiular, fr perei interiori, cu o intrare i o ieire, rezolvat n GNU Octave i n MATLAB

    12

    % REPREZENTAREA GRAFICA A VECTORILOR VITEZA: clf % sterge imaginea din graficul activ (prezentata in figura 4) hold on v = 10:10:90; % se vor suprapune vectorii viteza peste 9 linii de curent, cu valori psi=10 -> psi=90 [C,h] = contour(psi,v); colormap([0 0.5 0.6]), axis([1 m 1 n]) axis off plot([1 m m],[n n 11],'b',[1 1 m],[21 1 1],'r','linewidth',2) % frontierele solide title('Miscarea potentiala pentru discretizarea fina a domeniului') % CALCULUL VITEZEI: componentele vitezei sunt vx = dpsi/dy si vy = -dpsi/dx [dpsidx,dpsidy] = gradient(psi); vx = dpsidy; vy = -dpsidx; for j = 1:m for i = 1:n v(i,j) = sqrt(vx(i,j)^2+vy(i,j)^2); endfor endfor % TRASAREA VECTORILOR VITEZA (se pune -vx, -vy, ca sa rezulte sensul de curgere impus in problema): quiver(-vx,-vy) % SALVAREA FIGURII CU NUMELE viteze_domeniu_des si extensia emf: print('viteze_domeniu_des.emf','-demf')

    n figura 5 este prezentat cmpul de viteze n domeniul cosiderat.

    Fig. 5 Vectorii vitez pentru discretizarea deas a domeniului de calcul

    Miscarea potentiala pentru discretizarea fina a domeniului

  • MS6, Ecuaia lui Laplace Micarea potenial plan a unui fluid ntr-o incint dreptunghiular, fr perei interiori, cu o intrare i o ieire, rezolvat n GNU Octave i n MATLAB

    13

    Observaie: Pentru rularea n MATLAB, liniile de program seamn n general cu cele elaborate n GNU Octave, cu excepia diferenelor specificate la cazul discretizrii rare a domeniului de calcul.