LUCRAREA Nr. REPREZENTĂRI GRAFICE ÎN SPAłIUL TRIDIMENSIONAL (3D). Obiective Utilizarea mediului de programare Matlab pentru crearea şi controlul reprezentărilor grafice în spańiul tridimensional. 2. NoŃiuni teoretice Sistemul MATLAB oferă o serie de funcńii pentru crearea graficelor în spańiul 3D. 2.. Reprezentarea grafică tridimensională a unui set de date conńinute în vectori sau matrice Pentru a afişa sub forma de linii, în spańiul tridimensional, datele conńinute în trei vectori sau matrice se foloseşte funcńia plot3 cu una din sintaxele: plot3(x,y,z, ) plot3(x,y,z, specificańie linie, ) plot3(, Nume proprietate, Valoare proprietate ) h = plot3(...) FuncŃia plot3(x,y,z,...), unde X, Y, Z sunt vectori de aceeaşi dimensiune, afişează, în spańiul tridimensional, o curbă obńinută prin interpolarea liniara a punctelor ale căror coordonate sunt elementele vectorilor X, Y, Z. Ca şi în cazul funcńiei plot, pot fi reprezentate mai multe seturi de date, deci mai multe triplete de argumente. Dacă X, Y, Z sunt matrice de aceeaşi dimensiune, MATLAB-ul reprezintă câte o curbă pentru fiecare coloană a matricelor, folosind ciclic culorile de bază. În funcńia plot3(x,y,z, specificańie linie, )argumentul opńional specificańie linie (maxim trei caractere) permite specificarea stilului de
APLICAłII MATLAB linie, de marcator şi culoarea liniilor reprezentate grafic (ca şi la funcńia plot). Prin perechile de argumente de tipul Nume proprietate, Valoare proprietate, se pot stabili valori ale proprietăńilor obiectelor grafice de tip Line create prin funcńia plot3. Sintaxa h = plot3(...) afişează vectorul coloana h, care conńine identificatorii tuturor obiectelor grafice de tip Line create. Exemplu: t = :pi/:8*pi; plot3(sin(t),cos(t),t,'--r','linewidth',2) grid on 3 2 2. -. - - -.. 2.2. Reprezentarea grafică 3D a suprafeńelor Mediul MATLAB poate crea suprafeńe 3D fie sub forma unei reńele de linii care leagă punctele de definińie, fie sub forma unei suprafeńe pline, utilizând funcńiile mesh, respectiv surf. O suprafańă este definită prin două variabile independente, i şi j, care variază continuu într-un domeniu impus, de exemplu i m, j n. Fiecare punct este specificat prin trei funcńii X(i,j), Y(i,j), Z(i,j). Nodurile care definesc suprafańa sunt trei matrice X, Y şi Z, de dimensiune m n. Pentru specificarea culorii, este necesară încă o matrice C, de aceeaşi dimensiune m n. FuncŃiile Matlab pentru reprezentări 3D ale suprafeńelor sunt: mesh - Reprezintă grafic suprafeńe 3D sub forma unei reńele; meshc - Reprezintă grafic suprafeńe 3D sub forma unei reńele în care se trasează liniile de contur ca proiecńii în planul bazei (reprezentate sub suprafańă); meshz - Reprezintă grafic suprafeńe 3D sub forma unei reńele cu plan de referinńă la cota zero; surf - Reprezintă grafic suprafeńe pline (netede) 3D; surfc - Reprezintă grafic suprafeńe pline 3D în care se trasează liniile de contur ca proiecńii în planul bazei (reprezentate sub suprafańă). 2
REPREZENTĂRI GRAFICE ÎN SPAłIUL TRIDIMENSIONAL (3D) 2.2.. Reprezentarea grafică a suprafeńelor sub forma unei reńele (funcńia mesh) FuncŃia mesh se apelează cu una dintre sintaxele: mesh(x,y,z) mesh(x,y,z,c) mesh(z) mesh(z,c) meshc( ) meshz( ) mesh(, Nume proprietate, Valoare proprietate ) unde: X şi Y sunt vectori ordonańi crescător şi cu pas constant; Z este funcńia de două variabile care trebuie reprezentată grafic sub forma unei suprafeńe; C este matricea culorilor. În cazul cel mai general, când funcńiile au patru argumente, sunt create suprafeńe specificate prin matricele X, Y şi Z, cu culorile specificate prin matricea C. MATLAB-ul realizează o transformare lineară asupra datelor din C pentru a obńine culorile din paleta de culori curentă. Dacă X, Y şi Z sunt matrice, C trebuie să aibă aceeaşi dimensiune cu acestea. Sintaxa mesh(x,y,z), în care matricea C este omisă, consideră culoarea ca fiind proporńională cu înălńimea suprafeńei. Dacă argumentele X şi Y nu apar în sintaxa funcńiei (mesh(z)), atunci se reprezintă grafic valorile matricei Z în funcńie de indicii acesteia. Dacă X şi Y sunt vectori, length(x) = n şi length(y) = m, unde [m,n]=size(z), punctele de coordonate (X(j), Y(i), Z(i,j)) sunt intersecńiile liniilor de grid care compun reńeaua de linii (mesh). X şi Y corespund coloanelor respectiv liniilor lui Z. Dacă X şi Y sunt matrice, intersecńiile liniilor reńelei au coordonatele (X(i,j), Y(i,j), Z(i,j)). Prin perechile de argumente de tipul Nume proprietate, Valoare proprietate, se pot stabili valori ale proprietăńilor obiectelor grafice de tip Line create prin funcńia mesh. 2.2.2. Reprezentarea grafică a suprafeńelor pline (funcńia surf) FuncŃia surf se apelează cu una din sintaxele: surf (X,Y,Z) surf (X,Y,Z,C) surfc(z) surfc(z,c) 3
APLICAłII MATLAB surf(, Nume proprietate, Valoare proprietate ) unde: X şi Y sunt vectori ordonańi crescător şi cu pas constant; Z este funcńia de două variabile care trebuie reprezentată grafic; C este matricea culorilor. SemnificaŃia argumentelor este similară cu cea a funcńiei utilizată pentru reprezentarea suprafeńelor sub forma unei reńele de linii (mesh). Prin perechile de argumente de tipul Nume proprietate, Valoare proprietate, se pot stabili valori ale proprietăńilor obiectelor grafice de tip Line create prin funcńia surf. 2.2.3. FuncŃii de referinńă Matlab pentru reprezentarea grafică a funcńiilor de două variabile Pentru a reprezenta grafic o funcńie de două variabile, f(x,y), sub forma unei suprafeńe ca reńea de linii colorate sau suprafańă plină, înainte de apelul funcńiei grafice dorite este necesară generarea matricelor X şi Y utilizate în evaluarea funcńiei de două variabile, f. Pentru transformarea domeniului specificat de cei doi vectori x şi y de dimensiuni n, respectiv m, în matricele X şi Y de dimensiuni m n, astfel încât liniile lui X sunt copiile vectorului x, iar coloanele lui Y sunt copiile vectorului y, se foloseşte funcńia meshgrid, care poate avea una din sintaxele: [X,Y] = meshgrid(x,y), care transformă domeniul specificat de vectorii x şi y în matricele X şi Y; [X,Y] = meshgrid(x) este identică cu [X,Y] = meshgrid(x,x). [X,Y,Z] = meshgrid(x,y,z) determină matrice tridimensionale utilizate pentru evaluarea funcńiilor de trei variabile şi reprezentări tridimensionale volumetrice. ObservaŃie: O funcńie similară cu meshgrid este ndgrid, cu excepńia cazului cu două variabile de intrare şi două argumente de ieşire. În acest caz, funcńia, [X,Y,Z] = meshgrid(x,y,z) produce acelaşi rezultat ca şi funcńia, [Y,X,Z] = ndgrid(y,x,z) Din această cauză, funcńia meshgrid este mai potrivită pentru problemele în spańiu cartezian cu două sau trei dimensiuni, în timp ce funcńia ndgrid este mai potrivită pentru problemele multidimensionale. 4
REPREZENTĂRI GRAFICE ÎN SPAłIUL TRIDIMENSIONAL (3D) 2.2.4. Reprezentarea obiectelor 3D predefinite În MATLAB există funcńii predefinite pentru reprezentarea anumitor corpuri în spańiu, cum ar fi, sfera şi cilindru. Generarea unei sfere cu raza egala cu unitatea se realizează cu funcńia sphere, care poate avea una din sintaxele următoare: sphere(n) sphere [X,Y,Z] = sphere(n) FuncŃia sphere(n) reprezintă grafic suprafańa unei sfere formată din n n suprafeńe elementare. FuncŃia sphere, fără argumentul n, presupune utilizarea valorii implicite pentru acesta (n=2). FuncŃia [X,Y,Z] = sphere(n) creează trei matrice X, Y şi Z, cu coordonatele sferei unitate, care vor fi utilizate ulterior ca argumente ale funcńiei surf sau mesh pentru reprezentarea grafică a suprafeńei sferei. Generarea unui cilindru (sau forme geometrice derivate din acesta), cu înălńimea egală cu unitatea, se realizează cu funcńia cylinder, prin una dintre sintaxele: [X,Y,Z] = cylinder [X,Y,Z] = cylinder(r) [X,Y,Z] = cylinder(r,n) cylinder(...) Când este apelată cu argumentele de ieşire X, Y şi Z, funcńia cylinder nu are nici un efect grafic, ci se creează matricele cu coordonatele necesare reprezentării grafice ulterioare cu una din funcńiile mesh sau surf. În cazul în care se specifică argumentele de intrare, în cazul general notate cu r şi n, se particularizează aspectul obiectului grafic, fiind posibilă astfel şi reprezentarea grafică a altor corpuri derivate dintr-un cilindru: conuri, piramide, trunchiuri de con, trunchiuri de piramida sau alte corpuri obńinute ca o dispunere succesiva a astfel de corpuri, de-a lungul axei z. Prin argumentul r (vector sau scalar), se pot specifica razele cercurilor circumscrise poligoanelor regulate care formează bazele formelor geometrice 3D ce compun obiectul grafic de tip surface, dispuse consecutiv în intervalul de o unitate al axei Z. Cilindrul are 2 de puncte la distanńe egale în jurul circumferinńei sale. Dacă r este un vector cu m elemente, vor exista (m-) astfel de forme geometrice 3D. Dacă r este un scalar, va fi generată o singură forma
APLICAłII MATLAB geometrică şi va fi considerată aceeaşi valoare a razei pentru baza inferioară şi baza superioară. Valoarea implicită a argumentului r este. Argumentul n, întotdeauna un scalar, specifică numărul de laturi ale poligoanelor regulate care formează bazele formelor geometrice 3D. Valoarea implicita a acestuia este 2. Sintaxele fără argumente de intrare sunt echivalente specificării valorilor implicite ale acestora. Sintaxele fără argumente de ieşire reprezintă grafic, în fereastra figură curentă, cu funcńia surf, obiectul de tip suprafańă cu aspectul particularizat prin argumentele de intrare (dacă există). 3. Probleme de rezolvat 3.. Crearea unui grafic 3D pentru funcńii reale de două variabile reale 3... Să se reprezinte grafic, în coordonate 3D, funcńia reală de două variabile reale, f, care are expresia: f ( x, y) : x 4y 2 2 = +, unde x (, ) si y (,) 3..2. Să se reprezinte grafic, în coordonate 3D, funcńia reală de două variabile reale, f, care are expresia: y τ ( θs θm ) f( x, y) := θm e erf x 2 γ c λ y x 2 + 2 e ν x erf + 2 ( ) θs θm eν x erf... x γ c 2 λ y γ c + λ y y τ y τ... 6
REPREZENTĂRI GRAFICE ÎN SPAłIUL TRIDIMENSIONAL (3D) În expresia funcńiei definite de utilizator f, se foloseşte funcńia eroare Erf, definită matematic prin relańia: ( ) not 2 z 2 t =, predefinită în Matlab, prin funcńia erf. Erf z e dt π Pentru rezolvarea problemei s-au considerat următoarele valori numerice: γ := 893 c := 387 mt :=. a :=.2 α :=. λ := 393 p := θs := 83 c τ := mt ν := c γ θm := p τ α a λ τ c γ FuncŃia f reprezintă expresia analitică a temperaturii pentru o bară omogenă semi-infinită, la capătul căreia se aplică o treaptă de temperatură. Pătrunderea câmpului termic este studiată în cazul subansamblelor echipamentelor electrice ce sunt solicitate termic semnificativ. SituaŃia corespunde încălzirii unui contact electric de către arcul electric sau la scurtcircuit. ObservaŃie: Când o expresie depăşeşte lungimea unui rând, în Matlab, se utilizează semnul (trei puncte) la capătul rândului, pentru a marca scrierea unei instrucńiuni pe mai multe rânduri. SemnificaŃiile notańiilor sunt următoarele: α coeficientul global de cedare a căldurii [W/m 2 ]; mt masa contactului [kg]; a suprafańa contactului [m 2 ]. θ temperatura [ ]; λ conductibilitatea termică a materialului [W/m ]; c căldura specifică masică [Ws/kg ]; γ masa specifică [kg/m 3 ]; τ constantă de timp termică locală [s]; p pierderi specifice [W/m 3 ]. 7
APLICAłII MATLAB 3..3. Să se reprezinte grafic următoarele funcńii parametrice: F( u, v) := u sin( v) F2( u, v) := u cos( v) F3( u, v) := u sin( u) 2 4. Probleme rezolvate 4.. Reprezentare grafică Folosind nońiunile teoretice, prezentate la 2.2, se va reprezenta grafic funcńia f(x,y) definită la 3... Se vor seta parametrii reprezentării grafice astfel încât să se obńină imaginea prezentată. clc clear X=-:.2:; Y=-:.2:; f=meshgrid(x.^2+4.*y.^2); mesh(x,y,f); figure meshc(x,y,f); figure surf(x,y,f) figure surfc(x,y,f) 4 4 2 2 8 8 6 6 4 4 2 2 - - - - 8
REPREZENTĂRI GRAFICE ÎN SPAłIUL TRIDIMENSIONAL (3D) 4.2. Reprezentare grafică 2 Folosind nońiunile teoretice, prezentate la 2.2, se va reprezenta grafic funcńia f(x,y) definită la 3..2. Se vor seta parametrii reprezentării grafice astfel încât să se obńină imaginea prezentată. 2 2 8 8 6 6 4 4 2 2.8.8.6.4.2.2.4.6.8..6.4.2.2.4.6.8. 4.3. Reprezentare grafică 3 Folosind nońiunile teoretice, prezentate la 2.2, se vor reprezenta grafic funcńiile parametrice (F, F2, F3) definită la 3..3, astfel încât să se obńină imaginea prezentată. - - - - 2 2 3 3 4 4. Probleme propuse 9