Sunteți pe pagina 1din 9

1

LUCRAREA 2
Matrici i vectori

1. Matrici i vectori. Definiii.

n teoria informaiei o matrice este un tablou n care informaiile
sunt organizate n linii i coloane. Este cel mai des ntlnit mod de
organizare al informaiei din aceast cauz matricea fiind supranumit
mama structurilor de date. n matematic matricile sunt de obicei tablouri
de numere. Pentru notaii se utilizeaz paranteze ptrate ntre care se
scrie tabloul de date.
Exemplu un tablou numeric de dou linii i dou coloane:
5 0
1 2
(
(


. n
cazul unei matrici mari se folosesc uneori notaii simbolice:
1, , ; 1, ,
ij
a i n j m ( = =

pentru o matrice cu n linii i m coloane.
Numrul de linii i de coloane reprezint tipul matricii. Din exemplele de
mai sus prima matrice este de tipul 2X2, iar a doua de tipul nXm. n
cazul cnd n=m matricea se zice ptrat i are tipul n. n cazul matricilor
ptrate elementele de pe diagonala ce pornete din colul din stnga sus i
ajung n colul din dreapta jos formeaz diagonala principal. Elementele
ce pornesc din colul din dreapta sus i ajung n colul din stnga jos
formeaz diagonala secundar.
Matricile de tipul 1Xm se numesc vectori linie cu m elemente.
Matricile de tipul nX1 se numesc vectori coloan cu n elemente.

2. Definirea matricilor n MATLAB.

Pentru definirea matricilor n MATLAB se utilizeaz operatorul
[]. Astfel n interiorul operatorului elementele matricii se scriu pe linii cu
separatori ntre elemente (spaiu, virgula), terminarea unei linii fiind
indicata de separatorul punct-virgula (;).De exemplu matricea:

1 2 3
3 2 1
A
(
=
(



Se obine cu ajutorul comenzii [1,2,3;3,2,1]. Un vector linie [1 2 3] se
definete n MATLAB exact cum a fost scris mai nainte. Acelai vector
dar coloan se va defini cu [1;2;3]
2
Matrici mai des definite au funcii predefinite:
- zeros(n,m) va genera matricea de tip nXm a crui elemente
sunt toate zero. Dac matricea este ptrat de tip n se va scrie
zeros(n).
- ones(n,m) va genera matricea de tip nXm cu toate elementele
1. Matricea ptrat de tip n cu elemente 1 este generat de
ones(n).
- eye(n) va genera matricea unitate de ordin n,adic matricea ce
are elementele egale cu 1 pe diagonala principal i 0 n rest.
Operatorul [] permite generarea unor noi matrici prin
concatenarea unor matrici deja generate. Pentru concatenarea pe
orizontal a matricilor A cu B vom scrie [A,B] matricile A i B trebuind
s aib acelai numr de linii. Pentru concatenarea pe vertical vom scrie
[A;B] de data aceasta matricile A i B trebuind s aib aceli numr de
coloane.
Pentru generarea de matricii poate fi utilizat i funcia diag(v,k)
unde v este un vector iar k un ntreg. Funcia va genera o matrice n care
vectorul v devine o diagonal paralel cu diagonala principal aflat la
distana k deasupra(dac k>0)sau dedesubtul( dac k<0) diagonalei
principale iar restul elementelor matricii sunt nule. Dac k lipsete sau
este 0 atunci v va devenii chiar diagonala principal. Funcia diag este
util la definirea matricilor band (cum se numesc matricile ale cror
elemente nenule sunt pe diagonale paralele cu diagonala principal, aflate
n apropierea diagonalei principale).

3. Accesarea elementelor unei matrici. Operatorul :.

Accesarea individual a unui element se face indicnd linia i
coloana lui/ de exemplu pentru matricea A de mai sus elementul din
prima linie i coloana a treia este A(1,3)=3.
Pentru accesarea multipl MATLAB are mai multe posibiliti.
Astfel putem utiliza la indice operatorul : . Astfel dac vrem s indicm
elementele liniei 1 din A scriem A(1,1:3). innd cont c elementele
matricii A sunt memorate liniar putem indica toate elementele prin
A(:).Putem accesa mai multe elemente neliniar . Astfel daca dorim
elementele din linia i dar coloane impare scriem A(i,1:2:end). Se observ
apariia lui end care este expresia precis a propoziiei pn la sfrit .
O alt posibilitate este indicarea unei condiii drept indice. Astfel
dac dorim accesarea doar a elementelor pozitive ale lui A scriem
A(A>0) .Expresia di parantez trebuie s fie o expresie logic pe care
elementele trebuie s o verifice.
3
4. Operaii cu matrici i vectori.
Matricile de acelai tip se pot aduna obinndu-se o matrice a
crui elemente sunt suma element cu element a celor dou matrici,
matematic c
ij
=a
ij
+b
ij
.
nmulirea matricilor A cu B este posibil dac A este de tip nXm
i B de tip mXp rezultnd matricea C de tip nXp. nmulirea se face
linii pe coloane pentru a obine elementul c
ij
se face suma produselor
dintre elementele liniei i a lui A cu elementele corespunztoare ale
coloanei j a lui B (matematic
1
m
ij ik kj
k
c a b
=
=

).Noi vom scrie A*B i dac


produsul este posibil MATLAB va efectua nmulirea.
Datorit modului special n care este abordat mprirea de ctre
MATLAB aceasta va fi abordat separat n lucrarea urmtoare .
O matrice poate fi ridicat la putere cu operatorul ^. Aceast
ridicare la putere se face corespunztor operaiei nmulire linii pe
coloane prezentate mai nainte.
Pentru efectuarea operaiilor element cu element exist aa
numitele operaii cu punct. Astfel .* este operaia de nmulire element
cu element, ./ operaia de mprire element cu element iar .^ este
ridicarea la putere a fiecrui element al matricii. Aceste operaii sunt utile
n special n formulele ce admit ca variabile matrici sau vectori.
n afara funciilor de matrici de mai jos asupra matricilor se pot
aplica funciile matematice uzuale efectul aplicndu-se fiecrui element.
De exemplu sin aplicat unei matrici este matricea sinusurilor fiecrui
element.

5. Funcii de matrici.

Sunt foarte multe funcii de matrici. Vom prezenta pe scurt cele
mai utilizate dintre ele:
-size(A) ne d tipul matricii
-Numel(A) numrul elementelor lui A
-min(A) cel mai mic element al lui A
-max(A) cel mai mare element al lui A
-prod(A) produsul elementelor lui A
-sum(A) suma elementelor lui A
-det(A) determinantul lui A
-inv(A) inversa lui A


4
APLICAII

1. Definii n MATLAB vectorii i matricile de mai jos:
a)
( ) ( ) 1, 2, 3 ; 4, 5, 6 ;
1 2
0 ; 0 ;
1 1
v w
u z
= =
| | | |
| |
= =
| |
| |

\ . \ .


b)
1 0 0 2 0 1
0 1 0 ; 1 1 1 ;
0 0 1 1 2 2
A B
( (
( (
= =
( (
( (



2. Creai un vectorii va, vb, vc i vd care s aib urmtoarele elemente:
a) 2,4,6,8,,100;
b) 50,48,46,,-50;
c) 1,1/2,1/3,,1/100;
d) 0,1/2,2/3,3/4,,99/100.

3. Prin concatenarea matricilor i vectorilor de mai sus, definii n
MATLAB:
a) ( )
2
0
1
1, 2, 3, 4, 5, 6 ; ;
1
0
1
r t
| |
|
|
|

= =
|

|
|
|
|
\ .


b)
0 0 0 5 0 0
0 0 0 0 5 0
0 0 0 0 0 5
;
2 0 1 3 3 3
1 1 1 3 3 3
1 2 2 3 3 3
C
(
(
(
(
=
(
(
(
(
(



5
4. Cu ajutorul funciei diag(v,n), (unde n este distana de la diagonala
principal), definii:
a)
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
;
2 0 0 0 0 1
0 2 0 0 0 0
0 0 2 0 0 0
D
(
(
(
(
=
(

(
(

(
(



b)
2 1 0 0 0 0
1 2 1 0 0 0
0 1 2 1 0 0
;
0 0 1 2 1 0
0 0 0 1 2 1
0 0 0 0 1 2
E
(
(
(
(
=
(
(
(
(
(



5. Utiliznd matricile i vectorii definii n exerciiile 1., 2. i 3, calculai:
a) ; ; v z r t = = b) ; A u B z = c)
3 3 3
15 ; C D E + = d)
2 1
5 B B B

= ;
e)
5
D = ; f) D E E D = ; g) . . D E E D = ; h)
( ) ( ) sin cos D E = ;

6. Utiliznd matricile A i B s se defineasc matricile:
a)
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 2 0 1
0 0 0 1 1 1
0 0 0 1 2 2
G
(
(
(
(
=
(
(
(
(
(

;

6
b)
1 0 0 1 0 0
0 1 0 0 1 0
0 0 1 0 0 1
2 0 1 2 0 1
1 1 1 1 1 1
1 2 2 1 2 2
H
(
(

(
(
=
(
(
(
(
(



7. S se creeze sau calculeze, dup caz :
a) Vectorul elementelor impare ale lui r ;
b) Vectorul elementelor pozitive ale lui H;
c) Suma elementelor lui H;
d) Matricea elementelor lui H aflate la intersecia liniilor 1.2 i 3 cu
coloanele 2,4 i 6;
e) vectorul ri in care elementele lui r sunt n ordine invers.

8. Utiliznd matricea B definit la 1.c) scriei comenzile necesare pentru
a obine:
a) un vector format din elementele primei linii a lui B;
b) o matrice format cu ultimele dou linii ale lui B;
c) un vector a crui elemente sunt sumele elementelor din coloanele lui
B;
d) un vector a crui elemente sunt sumele elementelor din liniile lui B;
e) o matrice format din elementele din colurile lui B.




Indicaii i soluii

1.
c) B=[2 0 1;1 1 1;-1 2 -2]

2.
a) va=2:2:100
b) vb=50:-2:-50
c) vt=1:100; vc=1./vt
d) vt1=0:99; vt2-1:100; vd=vt1./vt2

7
3.
a) r=[v w]; t=[z;u]
b) C=[zeros(3) 5*eye(3);B 3*ones(3)]

4.
a) D=-2*diag(ones(1,3),-3)+diag(ones(1,4),2)
b) E=diag(ones(1,5),-1)+2*diag(ones(1,6))+diag(ones(1,5),1)

5.
a) v*z= -1 r*t= 1
b)
4
1
1
| |
|

|
|
\ .


c)
-180 -167 -90 170 135 160
-180 -255 -229 70 145 160
-60 -180 -300 -117 95 70
54 1 -225 18 104 198
68 81 -90 93 33 76
64 75 10 168 63 18
(
(
(
(
(
(
(
(
(



d)
-19.0000 -8.0000 -1.0000
-9.0000 -18.0000 -1.0000
-7.0000 6.0000 -23.0000
(
(
(
(



e)
4 0 0 0 0 -2
0 8 0 0 0 0
0 0 8 0 0 0
0 0 0 8 0 0
0 0 0 0 8 0
-8 0 0 0 0 4
(
(
(
(
(
(
(
(
(



8
f)
0 1 0 0 0 0
0 0 0 0 0 0
2 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 -1
0 0 0 -2 0 0

(
(
(
(
(
(
(
(
(



g)
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0

(
(
(
(
(
(
(
(
(



h)
0.4161 -0.5403 -0.1585 -1.0000 -1.0000 -1.0000
-0.5403 0.4161 -0.5403 -0.1585 -1.0000 -1.0000
-1.0000 -0.5403 0.4161 -0.5403 -0.1585 -1.0000
-1.9093 -1.0000 -0.5403 0.4161 -0.5403 -0.1585
-1.0000 -1.9093 -1.0000 -0.5403 0.4161 -0.5403
-1.0000 -1.0000 -1.9093 -1.0000 -0.5403 0.4161
(
(
(
(
(
(
(
(
(



6.
a) G=[A zeros(3);zeros(3) B]
b) H=[A A;B B]

7.
a) r(1:2:end)
b) H(H>0)
c) sum(H(:))
d) H(1:3,2:2:end)
e) ri=r(end:-1:1)

8.
a) va=B(1,1:end)
b) Bb=B(end-1:end,1:end)
9
c) xc=sum(B)
d) xd=sum(B,2) a doua valoare din sun indic dup ce dimensiune se
face suma (implicit are valoarea 1 deci sum pe coloane).
e) Bd=B([1,end],[1,end])