1
LUCRAREA nr. 1. Mediul de lucru Matlab
1. Caracteristici principale ale mediului Matlab
MATLAB este un software performant și cuprinzător destinat calculelor tehnice,
având o interfața prietenoasă cu utilizatorul. El oferă inginerilor, cercetătorilor și tehnicienilor
un sistem unitar și interactiv, care include calcule numerice și vizualizări grafice, prin aceasta
sprijinind creativitatea și creșterea productivității.
MATLAB dispune de o serie de soluții specifice pentru diferite aplicații, așa-
numitele toolboxes (biblioteci de funcții).
Poate fi considerat un limbaj de programare adaptat pentru probleme științifice grație
funcțiilor sale specializate, în care instrucțiunile sunt interpretate linie cu linie.
MATLAB înglobează analiza numerică, calculul vectorial, calculul matricial,
procesarea semnalelor și realizarea graficelor într-un mediu ușor de utilizat, în care
problemele și soluțiile sunt exprimate așa cum sunt ele scrise matematic, fără a utiliza
programarea tradițională.
MATLAB este un sistem interactiv, al cărui element de bază este o matrice care nu
pretinde dimensionarea sa. Aceasta permite rezolvarea multor probleme numerice într-un timp
mult mai scurt decât cel necesar scrierii unui program într-un limbaj de programare ca
Fortran, Basic sauC.
Un aspect foarte important este că toolboxurile de care dispune MATLAB sunt niște
colecții foarte cuprinzătoare de funcții MATLAB (fișiere .M), care extind mediul MATLAB
cu scopul de a rezolva clase particulare de probleme. Dintre domeniile în care sunt utile aceste
toolboxuri fac parte: teoria reglării automate, statistica și prelucrarea semnalelor, proiectarea
sistemelor de reglare, simularea sistemelor dinamice, identificarea sistemelor, rețele
neuronale, e.t.c.
Câteva dintre aceste biblioteci de funcții alături de domeniile de aplicații specifice
sunt enumerate în continuare:
SIGNAL PROCESSING TOOLBOX – procesare de semnal,
SYSTEM IDENTIFICATION TOOLBOX – identificarea sistemelor,
CONTROL SYSTEM TOOLBOX – sisteme de control,
ROBUST CONTROL TOOLBOX – control robust,
OPTIMIZATION TOOLBOX – optimizare,
NEURAL NETWORK TOOLBOX – rețele neurale,
SYMBOLIC MATH TOOLBOX – calcul simbolic,
Utilizările MATLAB în calcule numerice cele mai cunoscute sunt următoarele:
2
Matematica generală: operații cu matrice și câmpuri de date, operatori
relaționali și logici, funcții trigonometrice și alte funcții elementare, funcții Bessel, ß și alte
funcții speciale, aritmetica polinomială.
Algebra liniară și funcții de matrice: analiza matriceală, logaritmi,
exponențiale, determinanți, inverse, sisteme de ecuații liniare, valori proprii, descompuneri
după valori singulare, construirea de matrice, operații cu matrice
Analiza datelor și transformări Fourier
Metode numerice neliniare
Programare
2. Structura programului MATLAB
Structura simplificată a componentelor MATLAB este reprezentată în Figura 1.
MATLAB
SIMULINK
Blockset
Toolbox
Fisiere MDL
Fisiere MEX
Fisiere M
Fisiere P
GUIFereastra
Grafica
Fereastra
Grafica
Fereastra de
comanda
Fisiere MAT
Figura 1. Structura MATLAB-ului
Programul utilizează diferite tipuri de ferestre pentru introducerea de comenzi,
date și vizualizarea acestora. Fereastra de comanda (Figura 2) este acea fereastră în care
utilizatorul tastează instrucțiunile și MATLAB-ul returnează rezultatele. În Fereastrele
Grafice (Figura 3) MATLAB-ul trasează graficele cu ajutorul funcțiilor predefinite în
MATLAB. O serie de alte ferestre grafice sunt disponibile pentru bibliotecile de funcții
speciale ale MATLAB-ului, Simulink-ul sau alte obiecte predefinite. Versiunea 6.5. a
MATLAB-ului conține un ansamblu de diferite ferestre (Figura 4) pentru a vizualiza în
același timp comenzile Matlab din fereastra de comenzi, istoricul comenzilor din sesiunea
curentă precum și din cele anterioare, ca și fereastra spațiului de lucru, fereastră ce afișează
proprietățile variabilelor utilizate în sesiunea de lucru din MATLAB.
3
Figura 2.Fereastra de comandă MATLAB Figura 3. Fereastra grafică
Figura 4. Ansamblul de ferestre caracteristice pornirii sesiunii de lucru
în MATLAB 6.5.
În sesiunile de lucru ale pachetului de programe MATLAB se întâlnesc o serie de
fișiere cu următoarea semnificație:
Fișierele cu extensia M: sunt fișiere ce conțin linii de comandă MATLAB și
pot fi apelate în linia de comandă MATLAB pentru a executa setul de comenzi conținute în
aceste fișiere. Fișierele de tip M sunt elaborate de către utilizator într-o fereastră de editare de
tipul celei din Figura 5;
Fișierele cu extensia P: reprezintă versiunea predefinită a fișierelor de tip M;
Fișierele cu extensia MDL: sunt fișiere reprezentând modele Simulink.
Fereastra de editare a liniilor MDL este cea din Figura 6.
4
Fișierele cu extensia MAT: sunt fișierele utilizate pentru importul sau exportul
de date în sau dinspre MATLAB.
Figura 5. Fereastra de editare a
fişierelor cu extensia ‘ .m’
Figura 6. Fereastra de editare a
modelelor Simulink
3. Sesiunea de lucru în MATLAB
3.1. Pornirea MATLAB-ului
Activarea ferestrei de comanda MATLAB se poate realiza în WINDOWS: dați click
pe iconița MATLAB de pe desktop sau din meniul de programe. Prompterul de comandă >>
permite tastarea instrucțiunilor linie cu linie, fiecare linie fiind executată imediat după
apăsarea tastei ENTER.
În fereastra de comandă se tastează instrucțiunile (for, while, if … else, etc.), se
definesc matricile și vectorii precum și operațiile cu acestea. O linie poate conține mai multe
instrucțiuni separate cu virgulă sau punct și virgulă.
Funcțiile tastelor săgeți sunt prezentate în Tabelul 1:
Tabelul 1
Taste simbolice Functiile tastelor
Săgeată sus ↑ Recheamă comanda dată anterior
Săgeată jos ↓ Recheamă linia de comandă următoare
Săgeată stânga Deplasare la stânga cu un caracter
Săgeată dreapta Deplasare la dreapta cu un caracter
Ctrl+săgeata stânga Deplasare la stânga cu un cuvânt
Ctrl+săgeata dreapta Deplasare la dreapta cu un cuvânt
Home Deplasare la începutul liniei de comandă
End Deplasare la sfârsitul liniei de comandă
Esc Abandonează linia de comandă curentă
Ins Trece între modurile de editare Insert și Overtype
Backspace Șterge un caracter la stânga cursorului
Pentru a obține informația ajutătoare referitoare la un anumit subiect, instrucțiune sau
o funcție se tastează comanda help urmată de un subiect, funcție sau instrucțiune dorită (cu
litere mici).
5
Exemplul 1: Comanda «help log10» returnează în fereastra de comandă MATLAB
informații referitoare la semnificația funcției «log10», logaritm în bază zece, și modul de
apelare al funcției (numărul și semnificația variabilelor) precum și care sunt funcțiile similare
sau care folosesc funcția interogată.
>> help log10
LOG10 Common (base 10) logarithm.
LOG10(X) is the base 10 logarithm of the elements of X.
Complex results are produced if X is not positive.
See also LOG, LOG2, EXP, LOGM.
Alte comenzi utile pentru a obține informații ajutătoare sunt prezentate în Tabelul 2:
Tabelul 2
Sintaxa
comenzilor
Semnificația comenzilor
helpwin Obținerea de informații ajutătoare prin intermediul unei
ferestre de navigație
helpdesk permite accesul la documentația MATLAB
lookfor xyz caută combinațiile sau grupul de caractere xyz în
descrierile tuturor funcțiilor disponibile
demo lansează demonstrațiile în MATLAB.
3.2. Gestionarea fișierelor
Selectând comanda File, din meniul principal, se obține submeniul de gestionare a
fișierelor, cu următoarea listă de comenzi:
- New – provoacă descrierea unui alt sub-submeniu cu opțiunile: M-File (deschide o
ferestră de editare a unui fișier), Figure (deschide o fereastră grafică nouă), Model
(deschide fereastra corespunzătoare modelarii în Simulink);
- Open – deschide o fereastră de dialog, pentru a selecta un fișier, care va deveni un fișier
de lucru;
- Open selection – analizează fișierele pentru selectare și deschide pe cel selectat;
- Load Workspace – încarcă fișierul specificat, în care au fost salvate anterior datele din
spațiul de lucru;
- Save Workspace As – deschide o fereastră de dialog, pentru a salva datele din spațiul de
lucru într-un fișier, al cărui număr trebuie precizat;
- Show Workspace – prezintă conținutul spațiului de lucru;
- Set Path – se stabilesc căile către directoarele în care se găsesc fișiere sau aplicații
MATLAB;
- Preferences – stabilirea proprietăților ferestrei de comenzi;
- Print Setup – configurarea caracteristicilor imprimantei și paginii;
- Print – permite tipărirea documentului;
- Exit MATLAB – părăsirea aplicației.
6
3.3. Funcții asociate ferestrei de comenzi
Fereastra de comenzi se poate controla prin următoarele funcții:
- clc – șterge fereastra de comenzi;
- home – mută cursorul în poziția inițială (prima linie-prima coloană);
- format opțiune – setează formatul de afișare a datelor, în funcție de opțiunea specificată
(short – 5 cifre, long – 15 cifre, short e – 5 cifre + exp, long e – 15 cifre + exp, hex –
hexazecimal, plus – plus blanc minus, blank – cu 2 zecimale, rat – în numere raționale);
- echo – permite afișarea liniilor de program, în timpul executării acestora;
- more – funcție pentru controlul numărului de linie afișat de monitor.
3.4. Variabile speciale și constante Matlab
Variabilele speciale și constantele au o semnificație deosebită în MATLAB. Acestea
nu pot fi declarate și sunt accesibile global, în orice fisier -M. Variabilele speciale nu sunt
introduse în mod obișnuit, fiind accesibile global în orice fișier .m.
Variabilele speciale și constantele introduse în mod uzual în MATLAB sunt:
- ans – variabilă creată automat, reprezentând rezultatul unui calcul pentru care nu s-a
alocat un nume;
- pi – variabilă permanentă, care are alocată valoarea 3,14159265358;
- 1i – variabilă folosită pentru introducerea numerelor complexe (z =x + iy);
- j= 1 – alternativă a unității imaginare, i;
- inf – variabilă folosită pentru reprezentarea lui plus infinit în standardul IEEE, rezultat al
împărțirii 1,0/0,0;
- NaN – variabilă folosită pentru reprezentarea lui Not-a-Number (NaN), în aritmetica
IEEE, rezultat al împărțirii nedefinite 0,0/0,0;
3.5. Importul și exportul fișierelor de date
Pentru importul și exportul fișierelor de date se utilizează următoarele funcții mai
importante:
- load – încarcă varibilele dintr-un fișier de pe disc; sintaxa este load nume_fisier-
format_date (ASCII sau BINAR);
- save – salvează variabilele de pe disc într-un fișier de date; sintaxa este save nume_fisier-
format_date (ASCII sau BINAR).
3.6. Numere și expresii aritmetice
MATLAB utilizează pentru reprezentarea numerelor notația zecimală americană, cu
punct zecimal.
Calculatoarele care utilizează aritmetica în virgula mobilă IEEE, au precizia relativă
a numerelor “eps”, aproximată cu 16 cifre semnificative. Limitele numerelor folosite în
MATLAB sunt: 10-308
si 10308
.
7
Operatorii aritmetici utilizați sunt:
- + adunarea;
- - scăderea;
- * înmulțirea;
- / împărțirea la dreapta;
- \ împărțirea la stânga (1/4 = 4\1);
- ^ ridicarea la putere.
Matlabul recunoaște numere complexe, iar operatorul complex este „i” sau „j”.
3.7. Operatori relationali și logici
În cazul unui algoritm este uneori nevoie de o selecție a grupului de instrucțiuni a
căror execuție este condiționată de valoarea de adevăr a unei expresii. Instrucțiunile
condiționale utilizează operatori relationali și logici.
Operatorii relaționali compară două matrice, element cu element, returnând o matrice
de aceeași dimensiune cu a matricelor care se compară, cu elementele 1, când relația este
ADEVARATĂ și 0 când este FALSĂ.
Operatori relaționali Semnificație
< mai mic
<= mai mic sau egal
> mai mare
>= mai mare sau egal
= = identic
- = diferit
3.8. Matrice, vectori și scalari
MATLAB-ul utilizează numai un singur tip de obiecte, matrice numerice
rectangulare, cu elemente reale sau complexe. Astfel, scalarii sunt asimilați matricelor 1x1
(1linie x 1coloana), iar vectorii sunt asimilați matricelor 1xn sau nx1.
3.8.1. Definirea matricelor, vectorilor:
Cea mai simplă metodă de definire a matricelor mici, constă în utilizarea unei liste
explicite, respectând următoarele reguli:
- elementele unei linii trebuie separate prin blank-uri sau virgule;
- liniile se separă prin “;”;
- elementele matricei sunt cuprinse între “[ ]”.
Exemplul 2:
Secvența A=[1 2; 3 4] întoarce rezultatul:
8
A =
1 2
3 4
Pentru matricele mari, la care datele de intrate nu încap pe o singură linie, se poate
înlocui “;” cu “Enter”, ca în exemplul următor:
A =[ 1 2
3 4]
În continuare sunt prezentate câteva metode de creare a vectorilor (exemplul 3):
a) Crearea unui vector cu intervale egale între elemente:
>>x=0:0.5:pi % va întoarce rezultatul:
x = 0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000
b) Crearea unui vector cu n elemente situate la intervale egale:
>>x=linspace(0, pi, 7)
x = 0 0.5236 1.0472 1.5708 2.0944 2.6180 3.1416
c) Crearea unui vector cu intevale egale între elemente în scara logaritmică:
>> x=logspace(1,2,7)
x =10.0000 14.6780 21.5443 … 68.1292 100.0000
Elementele matricelor pot fi numere reale sau complexe, precum și orice expresie
MATLAB.
De exemplu, din secvența : x=[-1.3 sqrt(3) (1+2+3)*4/5], rezultă:
x =[ -1.3000 1.7321 4.8000].
Elementul unei matrice x, aflat la intersecția dintre linia i și coloana j este identificat
cu notația x(i,j). Astfel: a = x(2) a = 1.7321.
O parte din operațiile ce pot fi efectuate folosind matrici sunt enumerate în tabelul 3:
Tabelul 3.
Operația Operatorul aritmetic
Adunarea +
Scăderea -
Înmulțirea *
Împărțirea la dreapta /
Împărțirea la stânga \
Ridicarea la putere ^
Transpunerea ’
Adunarea a două matrice este posibilă numai dacă matricele sunt de același tip. O
matrice cu p linii și n coloane se spune că este de tipul {p, n}. Elementele sumei se obțin
adunând elementele corespunzătoare din cele două matrice. Daca notăm cu aij elementul
9
generic al matricei [a], cu bij elementul generic al matricei [b] și cij elementul generic al
matricei sumă [c], atunci avem:
[c] = [a]+[b],
ceea ce se reduce la:
cij = aij + bi , pentru toate valorile luate de i și j.
La înmulțirea a două matrice X și Y trebuie ca numărul de coloane ale matricei X să
fie egal cu numărul de linii ale matricei Y.
Exemplul 4:
X =[ 2 3 4; 7 8 9; 11 12 13];
Y=[2 2 2 2; 2 2 2 2; 2 2 2 2];
X*Y=?
Dar pentru X1=[2 3 4; 5 7 8; 9 10 11; 12 13 14]?
Care este rezultatul operației X.*Y?
Pentru împărțirea la stânga a două matrice se utilizează operatorul „\”, respectiv
„backslash”, astfel încât A\B înseamnă împărțirea matricei A cu B, ceea ce este același lucru,
atunci când este posibil, cu A-1
*B, adică inv(A)*B. Daca A este o matrice pătrată cu N linii și
N coloane (de NxN), iar B este un vector coloană de N elemente sau o matrice cu același
număr N de coloane, rezultatul X=A\B este soluția ecuației A*X=B.
De exemplu,dacă,
A =[ 10 25 3; 4 5 6; 7 8 9];
B =[ 2; 3; 4];
atunci,
X=A\B conduce la :
X =
-0.6216
0.2432
0.7117.
În cazul matricilor, ridicarea la putere se face pentru un exponent scalar; dacă se
consideră matricea baza element cu element, atunci exponentul poate fi tot o matrice.
Exemplul 5:
A=[ 2 3
4 5];
A^2=?
B=[1 2
1 2]
A.^B=?
Dar pentru B1=[1 2 3;1 2 3]?
3.8.2. Rezolvarea sistemelor liniare folosind matrici:
Rezolvarea sistemelor algebrice liniare se reduce la rezolvarea unor ecuații
matriceale de forma A x b .
Exemplul 6: Se consideră sistemul:
5 3 - 2 10
8 4 3 20
2 4 - 9 9
x y z
y z x
x y z
10
Pentru acest sistem se vor separa termenii ce conțin variabilele și termenii liberi.
Apoi se definesc matricele:
>>A = [5 -3 2; -3 8 4; 2 4 -9];
>>b = [10; 20; 9];
Iar rezultatul acestui sistem va fi: x = A \ b
Verificarea se poate face calculând c = A*x, iar c trebuie să fie egal cu b.
3.8.3 Functii ce folosesc matrici Au fost implementate în Matlab câteva funcții predefinite ce ușurează lucrul cu matrici
și vectori:
• mean(A): valoarea medie a vectorului;
• max(A), min (A): maximum și minimum.
• sum(A): sumare.
• sort(A): realizează sortarea vectorului
• det(A) : determinantul unei matrici pătratice
• Inv(A): Inversa unei matrici
3.9. Algebra simbolică
Crearea variabilelor simbolice se poate face folosind toolboxul Symbolic Math.
Definirea variabilelor se face în felul următor:
syms a t x y f
Aceste variabile pot fi folosite în expresii și ca argumente:
r = x^2 + y^2 sau r=(x+y)2
Funcții ce folosesc variabilele simbolice:
expand(expresie)
pretty(var)
Exemplul 7: Să se calculeze expresia xyyx 22 .
Instructiuni Rezultate
>> a=(x+y)^2-2*x*y
>> expand(a)
>> pretty(a)
a =(x + y)^2 - 2*x*y
ans =x^2 + y^2
2
(x + y) - 2 x y
3.10. Tehnici de vizulizare folosind Matlab
Arhitectura grafică bi- şi tri- dimensională orientată pe obiect a MATLAB-ului oferă
un mediu performant pentru grafica şi analiza vizuală a datelor.
Ca mediu grafic, MATLAB este foarte avantajos, pentru că el dispune de numeroase
funcţii speciale necesare în domeniul tehnic. Funcţiile grafice cuprind principalele formate
ştiinţifice şi tehnice, cum sunt scalele logaritmice, diagramele reprezentate în coordonate
polare etc.
MATLAB permite realizarea unor grafice performanţe în culori, cu funcţii grafice
moderne în trei dimensiuni, ca diagrame de suprafeţe, curbe de nivel tridimensionale,
11
reprezentarea imaginilor, animaţie, reprezentări volumetrice şi multe altele. Prin utilizarea
acestor funcţii cu 3, 4 şi chiar 5 dimensiuni este facilitată şi cercetarea unor structuri mai
complexe de date.
Spre deosebire de pachetele vizuale de evaluare a datelor, unde este vorba de
programe individuale (singulare), care prelucrează date din alte surse, posibilităţile de
prelucrare integrate de MATLAB oferă o libertate nelimitată de analiză, transformare şi
vizualizare - totul în cadrul unui singur mediu (unitar).
Programul Handle Graphics care stă la baza MATLAB este construit după o metodă
orientată pe obiect. El oferă modalităţi simple şi performante de adaptare şi modificare a
fiecărui aspect elementar al unei diagrame.
În cadrul programului Handle Graphics pot fi deschise în acelaşi timp mai multe
ferestre grafice, în care pot fi definite mai multe sisteme de coordonate. Se poate regla şi
poziţia în care va apărea imaginea pe pagina imprimată.
Un aspect şi mai important este că imaginile pot fi prelucrate dinamic în continuare.
Accesul la "handles" elementare este posibil în orice moment şi poate fi modificat practic
fiecare atribut al graficelor: modificarea culorii sau tipului de scris, deplasarea direcţiilor
axelor etc. Acestea şi multe alte atribute pot fi definite la conceperea unui grafic sau pot fi
modificate în timp ce graficul este afişat pe ecran.
Principalele aplicaţii ale tehnicii de vizualizare sunt:
Grafice bidimensionale
Grafice tridimensionale
Vizualizări
Handle Graphics
Comanda interfeţei grafice cu utilizatorul
Realizarea graficelor se face folosind instrucțiunea plot(x,y). Aceasta desenează
vectorul Y în funcţie de vectorul X. Se pot alege culorile dependenţelor ce vor fi reprezentate,
astfel se poate scrie plot(X,Y,'S') unde S este un sir de 1,2, sau 3 alcătuit din următoarele
caractere:
y yellow . point
m magenta o circle
c cyan x x-mark
r red + plus
g green - solid
b blue * star
w white : dotted
k black -. dashdot
-- dashed
Pentru mai multe variabile reprezentate pe acelaşi grafic se pot combina perechile de
variabile: plot(X1,Y1,S1,X2,Y2,S2,X3,Y3,S3).
Mai multe grafice pot fi create în același timp, iar pentru vizualizarea lor într-o nouă
fereastră se folosește instrucțiunea figure().
12
Exemplul 8. Observați realizarea graficului următor, executând setul de instrucțiuni:
x1=linspace(0,5,100)';
x2=x1;x3=x1;
y1=sin(2*x1);
y2=0.5*cos(2*x2);
y3=-2*exp(-x3);
figure(1)
plot([x1 x2 x3],[y1 y2 y3])
figure(2)
plot(x1,y1,x2,y2,x3,y3)
Mai multe grafice pot apărea în aceeași fereastră de vizualizare utilizând comanda
subplot(). Fereasta este împărțită în mxn panouri. Observați rezultatul instrucțiunilor din
exemplul 9:
subplot(211)
plot([x1 x2 x3],[y1 y2 y3])
subplot(212)
plot(x1,y1,'c',x2,y2,'.')
Realizarea graficelor 3D se face folosind comanda plot3(x,y,z). Comanda
meshgrid(x,y) este necesară pentru a transforma vectorii x,y în variabile ce pot fi folosite
în scopul realizării graficelor 3D.
Exemplul 10:
x=0:4
y=-2:2
[X,Y]=meshgrid(x,y)
t=linspace(0,6*pi,200);
x=cos(t);
y=sin(t);
z=t;
figure(1) % Create a new Figure Window
subplot(221)
plot3(x,y,z), grid
xlabel('cos(t)');ylabel('sin(t)');zlabel('t');
4. Exerciții propuse:
4.1.Calculați următoarele expresii folosind operații simple Matlab:
a. 5
5
2
2 1;
2
5 7 21
7 1
;
1
3r
b. 3 1603 310 ln log e ee e
13
c. 2 2sin cos tan sin cos6 2 6 6
d. 41 3
1 1 3
jjj e
j
4.2.Ecuația unei drepte este , 0.5, 2y mx b m b . Calculați y dacă x=[0 1.5 3 4 5
8.4].
4.3.Creați un vector, t, cu elemente situate la intervale egale, 0,1,2,...,10. Apoi calculați:
21 sinsin
1
t tz t x y
t t
4.4.Observați rezultatul următoarelor instrucțiuni:
>> A=[1 2 3;4 5 6;7 8 9]
>> A(2,3) % Selectează elementul 2,3
>> A(1,2)=14
>> A(:,1) % Selectează coloana 1
>> A(2,:) % Selectează linia 2
>> B=A(2:3,1:3) % Selectează liniile 2-3 și coloanele 1-3
>> B(:,2)
>> B(:,2)=[] % Șterge coloana 2
4.5.Creați vectorul v = 0:0.2:2*pi și matricea M=[cos(v);sin(v)]. Folosiți
instrucțiunea size(M) pentru a determina dimensiunea matricei M. Afișați primele 10
elemente ale fiecărei linii din M.
4.6.Rezolvați sistemul de ecuații următor și verificați soluția obținută:
3 2 - 6
2 - 3 5
7 - 3 - 2
x y z
z y x
x z
4.7.Faceți graficul sin3y t pentru 40 valori ale lui t între 0 și pi.