Documente Academic
Documente Profesional
Documente Cultură
1. Obiectivul lucrării
2. Mersul lucrării
Matlab-ul are o serie de funcții predefinite. Ele operează asupra fiecărui element al unei matrice sau al
unui vector şi se apelează cu sintaxa:
nume_funcţie(argument)
Fie vectorul ce tebuie definit în Matlab şi ale cărei numere trebuiesc aproximate:
Funcţiile MATLAB ce pot fi apelate pntru aproximarea numerelor acestui vector sunt:
ceil( ) returnează un număr întreg, rotunjit la cel mai apropiat întreg spre plus infinit (+∞);
>> ceil(V)
ans =
0 2 3 5 -5 -7
fix( ) returnează un număr întreg, rotunjit la cel mai apropiat întreg spre zero;
>> fix(V)
ans =
0 2 2 4 -5 -7
floor( ) returnează un număr întreg, rotunjit la cel mai apropiat întreg spre minus infinit (-∞);
>> floor(V)
ans =
0 2 2 4 -6 -8
round( ) returnează un număr întreg, rotunjit la cel mai apropiat întreg;
>> round(V)
ans =
0 2 2 5 -5 -8
rat( ); [a, b]=rat( ); returnează aproximarea unui număr cu fracţii raţionale continue;
a şi b - numărătorul si numitorul fracţiei care aproximează;
>> rat(V) >> [a,b]=rat(V)
ans = a =
0 0 2 23 47 -26 -39
2 b =
2 + 1/(3 + 1/(3)) 1 1 10 10 5 5
5 + 1/(-3 + 1/(-3))
-5 + 1/(-5)
-8 + 1/(5)
d) Funcţia rest
>> Z2=rem(Y,X)
Z2 =
0.5000 3.0000 3.0000
e) Funcţia semn
Funcţia sign asociază fiecărui element al vectorului X elementele -1, 0, 1, după următoarea regulă:
1, daca x 0
sgn( x) 0, daca x=0
-1, daca x 0
>> Z4=sign(Y)
Z4 =
0
Numerele complexe sunt permise în toate operaţiile şi funcţiile din MATLAB. Acestea sunt
introduse utilizând variabilele speciale i și j, ca în exemplele: z 2 3i sau z 2 3 j .
2 3i 1
Pentru a defini matricea: M există două metode:
i 2 i
- ca sumă a două matrice cu elemente numere reale, una reprezentând partea reală iar cealaltă partea
imaginară;
M =
2.0000 + 3.0000i 1.0000
0 - 1.0000i 2.0000 - 1.0000i
M =
2.0000 + 3.0000i 1.0000
0 - 1.0000i 2.0000 - 1.0000i
Prin al doilea procedeu trebuie evitat orice spaţiu liber (blanc) între părţile reală şi imaginară ale
aceluiaşi număr complex; altfel apar ambiguități ca cea ilustrată în exemplul de mai jos, unde notaţia b
este vazută, datorită spațiului alb, ca un vector cu două numere: 2 şi 3i.
>> a=[2+3*i]
a =
2.0000 + 3.0000i
>> C=2-a*i
C =
2.0000 - 3.0000i
C =
2.0000 - 3.0000i
Dacă variabilele i sau j au fost deja utilizate în alte scopuri, pentru calculul cu numere complexe
poate fi declarată o nouă unitate imaginară, în modul următor: i1=sqrt(-1).
angle( ) calculează argumentul elementelor unui vector sau unei matrice, în radiani;
>> x=1; y=1; z=x+i*y; r=angle(z)
r =
0.7854
a) Funcţia putere
b) Funcţia radical
Argumentul poate fi orice număr real sau complex. Dacă numărul este negativ sau complex, rezultatul
calculului este un număr complex.
>> sqrt(-4)
ans =
0 + 2.0000i
c) Funcţia logaritm
Dacă argumentul funcţiilor log şi log10 este un număr negativ, sau complex, z=x+iy, rezultatul este
calculat cu relaţiile:
Exemple:
>> log(-23)
ans =
3.1355 + 3.1416i
>> log10(-100)
ans =
2.0000 + 1.3644i
d) Funcţia exponenţială
Dacă argumentul este numărul complex z=x+iy, rezultatul este calculat cu relaţia:
e z e x cos y i *sin( y)
Exemple:
>>a=exp(10)
a =
2.2026e+004
c) Funcţiiie hiperbolice
c.1) Funcţiiie hiperbolice directe
Funcţiile hiperbolice directe în MATLAB sunt:
sinh( ) Calculează sinusul hiperbolic al argumentului.
cosh( ) Calculează cosinusul hiperbolic al argumentului.
tanh( ) Calculează tangenta hiperbolică a argumentului.
coth( ) Calculează cotangenta hiperbolică a argumentului.
sech( ) Calculează secanta hiperbolică a argumentului.
csch( ) Calculează cosecanta hiperbolică a argumentului.
Dacă argumentul este o matrice, funcţiile trigonometrice operează asupra fiecărui element.
fliplr( ) returnează matricea rezultată prin rotire coloanelor matricei argument în jurul
coloanei(lor) centrală(e)
>> A=[11 12 13;21 22 23;31 32 33]
A =
11 12 13
21 22 23
31 32 33
>> B=fliplr(A)
B =
13 12 11
23 22 21
33 32 31
flipud( ) returnează matricea rezultată prin rotire liniilor matricei argument în jurul
liniei(lor) centrală(e)
>> C=flipud(A)
C =
31 32 33
21 22 23
11 12 13
rot90( ) rotirea unei matrice cu 90 de grade, în sens trigonometric (contrar sensului orar)
>> D=rot90(A)
D =
13 23 33
12 22 32
11 21 31
rot90(A,k ) rotirea unei matrice cu k 90 de grade. Dacă k este pozitiv rotirea este în
sens trigonometric şi în sens contrar, dacă este negativ
>> E=rot90(A,2)
E =
33 32 31
23 22 21
13 12 11
F =
11 0 0
21 22 0
31 32 33
triu( ) extrage matricea superior triunghiulară dintr-o matrice;
>> G=triu(A)
G =
11 12 13
0 22 23
0 0 33
e) Analiza matriceală
H =
0
ans =
-8.0000
K =
Inf Inf Inf
Inf Inf Inf
Inf Inf Inf
K =
-0.7500 0.5000
0.6250 -0.2500
rank( ) calculează rangul matricei; o matrice X nenulă cu m linii şi n coloane are rangul
k, dacă X are un minor nenul de ordin k, iar toţi minorii de ordin mai mare decât k (dacă
există) sunt nuli. Rangul unei matrice este un scalar 1≤k≤min(m,n).
>> L=rank(A)
L =
2
trace( ) calculează urma unei matrice - suma elementelor de pe diagonala principală;
>> M=trace(A)
M =
66
cumsum( ) calculează suma cumulată; dacă argumentul este un vector, funcţia returnează
un vector care conţine suma cumulată a elementelor vectorului argument, iar dacă
argumentul este o matrice, funcţia returnează o matrice care pe fiecare coloană conţine
suma cumulată a elementelor din coloana respectivă.
>> V=[1 2 3 4 5]; cumsum(V)
ans =
1 3 6 10 15
ans =
1 2 3
5 7 9
6 9 12
ans =
1 2 6 24 120
ans =
1 2 3
4 10 18
4 20 54
sum( ) calculează suma; dacă argumentul este un vector, funcţia returnează un scalar egal
cu suma elementelor vectorului, iar dacă argumentul este o matrice, funcţia retumează un
vector linie care conţine suma elementelor pe fiecare coloană.
>> V=[1 2 3 4 5];sum(V)
ans =
15
ans =
6 9 12
prod( ) calculează produsul; dacă argumentul este un vector, funcţia returnează un scalar
egal cu produsul elementelor vectorului, iar dacă argumentul este o matrice, funcţia
retumează un vector linie care conţine produsul elementelor pe fiecare coloană.
>> V=[1 2 3 4 5];prod(V)
ans =
120
ans =
4 20 54
a =
5
b =
1
a =
4 5 6
b =
1 2 3
[M,l]=max(X), [m,l]=min(X)
în vectorul M, respectiv m, se memorează valorile maxime (minime), iar în vectorul l,
indicii acestor valori. Dacă vectorul X are mai multe valori maxime (minime) identice, se
reţine indicele primului element maxim (minim) găsit.
>> V=[2 1 5 4 3];[M,l]=max(V),[m,l]=min(V)
M =
5
l =
3
m =
1
l =
2
mean( ) Calculează valoarea medie (media aritmetică); pentru vectori, funcţia mean
returnează un scalar egal cu valoarea medie a elementelor, iar pentru matrice, returnează
un vector linie conţinând valoarea medie a fiecărei coloane (media pe coloană).
ans =
3
median( ) calculează valoarea mediană; mediana este elementul de la mijlocul unui set de
date ordonat crescător. Dacă numărul N al valorilor setului este impar, valoarea mediană
este cea din poziţia (N+1)/2, iar dacă acesta este par, valoarea mediană este media
elementelor din poziţiile (N/2) şi (N/2)+1
>> V=[1 2 4 4];median(V)
ans =
3
>>A=[1 2 4 4; 3 4 6 6; 5 6 8 8; 5 6 8 8];median(A)
ans =
4 5 7 7
ans =
1 3 4 5 5
Y =
1 3 4 5 5
l =
2 4 3 1 5
1.5
0.5
0
1 2 3 4 5
N =
1 0 0 0 1 0 0 1 0 2
Y =
1.2000 1.6000 2.0000 2.4000 2.8000 3.2000 3.6000
4.0000 4.4000 4.8000
>> bar(Y,N)
Returnează aceiaşi histogramă de mai sus
3. Cerinţe
acesteia.