Sunteți pe pagina 1din 12

VECTORI si MATRICE

Unitatea de nvare nr. 2


VECTORI si MATRICE
Cuprins

Pagina

Obiectivele unitii de nvare nr. 2


2.1 Definirea scalarilor, vectorilor si matricelor
2.2 Operatii cu vectori si matrice
2.3 Construirea unei functii
2.4 Rezolvarea sistemelor de ecuatii liniare. Compatibilitate determinata
2.5 Generarea vectorilor cu pas liniar si cu pas logaritmic
2.6 Calcule cu matrice. Analiza matriceala
Lucrare de verificare unitatea de nvare nr. 2
Rspunsuri i comentarii la ntrebrile din testele de autoevaluare
Bibliografie unitatea de nvare nr. 2

OBIECTIVELE unitii de nvare nr. 2


Principalele obiective ale Unitii de nvare nr. 2 sunt:
Familiarizarea cu mediul de lucru MATLAB necesar
1
Medii de calcul ingineresc Curs i aplicaii

VECTORI si MATRICE

2.1

pentru introducerea vectorilor si matricelor


Sublinierea aspectelor practice in cazul operatiilor cu
vectori si matrice
Recunoaterea si familiarizarea cu elementele necesare
rezolvarii sistemelor de ecuatii liniare
nelegerea notatiilor limbajului MATLAB in generarea
de vectori
Aplicarea cu succes, in elementele de calcul pentru
matrice, a functiilor si operatorilor matematici predefiniti

Definirea scalarilor, vectorilor si matricelor

Matlab-ul este un pachet de programe care lucreaza numai cu un singur tip


de obiecte, matrice rectangulare, cu elemente reale sau complexe. In acest sens scalarii
sunt asociati matricelor cu o linie si o coloana, iar vectorii sunt asimilati matricelor cu o
linie sau o coloana. In realitate orice variabila in Matlab este reprezentata printr-o
structura de tip vectorial (array). Cea mai simpla metoda de introducere a matricelor
(deci si a vectorilor), dar nu este singura, este utilizarea unei liste explicite la care trebuie
utilizate urmatoarele reguli:
- elementele unei linii trebuie separate prin spatii libere sau virgula;
- liniile se separa prin ;;
- elementele matricei (sau vectorului) sunt cuprinse intre paranteze drepte[.] ;
- identificarea unui element al matricei A se face prin notatia A(i,j) si semnifica
elementul de pe linia i si coloana j sau cu un indice in cazul unui vector;
- daca se atribuie o valoare unui element ce ocupa o pozitie in afara dimensiunii
maxime a unei matrice sau unui vector, dimensiunea acestora este marita
automat pana la valoarea indicelui noului element, iar elementele nedefinite sunt
setate la valoarea zero;
- comanda size(A) returneaza dimensiunea matricei A;
- comanda det(A) returneaza valoarea determinantului in cazul unei matrice
patratice;
- comanda rank(A) returneaza rangul matricei A;
- comanda length(v) returneaza lungimea vectorului v;
- comanda A^(-1) returneaza inversa matricei A, in cazul in care A este o matrice
patratica si cu determinantul nenul;
- comanda A defineste transpusa unei matrice sau a unui vector.

Exemple:
1) >>v=[2 3 -1 4]
2) >>v=[2;3;-1;4]
3) >>v(2)
nostru 3;

defineste un vector linie;


defineste un vector coloana;
vizualizeaza a doua componenta a vectorului v, in cazul

2
Medii de calcul ingineresc Curs i aplicaii

VECTORI si MATRICE
4) >>v(2)=-7
5) >>v=[2 3 -1 4]
vector
6) >>A=[1 3 5;2 -4 7]
7) >>A(1,2)
nostru 3;
8) >>A(1,2)=6
doi;
9) >>A

2.2

inlocuieste a doua componenta a vectorului v cu -7;


returneaza vectorul transpus al lui v, in cazul noastru un
coloana;
defineste o matrice cu doua linii si trei coloane;
indica elementul de pe linia unu si coloana doi, in cazul
inlocuieste valoarea 3 cu 6 pe pozitia liniei unu si a coloanei
indica transpusa matricei A, in cazul nostru [1 2;3 -4;5 7].

Operatii cu vectori si matrice

Fie A si B doua matrice. Se definesc urmatoarele operatii:


1) adunarea si scaderea, notate A+B si A-B, definite pentru cazul in care cele doua
matrice sau cei doi vectori sunt de acelasi tip;
2) inmultirea, notata A*B si definita doar atunci cand numarul de coloane ale matricei
A este egal cu numarul de linii ale matricei B;
3) impartirea la dreapta, notata A/B sau A*B^(-1), definita cand numarul de coloane
ale matricei A este egal cu numarul de linii ale inversei matricei B, deci si
determinantul matricei B sa fie nenul;
4) impartirea la stanga, notata A\B sau A^(-1)*B definita cand numarul de coloane
ale inversei matricei A este egal cu numarul de linii ale matricei B, deci si
determinantul matricei A sa fie nenul;
5) ridicarea la puterea p, notata A^p, este definita numai pentru matrice patratice si
p scalar;
6) inmultirea element cu element, notata A.*B si este definita intre componentele a
doua matrice de acelasi tip;
7) ridicarea la putere a elementelor unui vector sau matrice, notata A.^p;
8) ridicarea la puterea elementelor unui vector sau matrice a uni scalar, notata p.^A;
9) transpunerea, notata A rescrie o noua matrice in care elementele de pe linie sunt
scrise pe coloana si invers.
10)
produsul scalar al vectorilor u si v se poate calcula ori cu comanda
sum(u.*v) daca vectorii sunt amandoi de acelasi tip, linie sau coloana si de aceeasi
dimensiune, sau u*v daca u este vector linie si v este vector coloana, de aceeasi
dimensiune.

Controlul variabilelor care au fost memorate de matlab la un moment dat se poate


efectua cu comanda who sau whos. Anularea variabilelor din memoria de lucru se
face cu comanda
>>clear

Se definesc mai multe matrice particulare:

matricea vid A=[ ]

matricea nul de ordin n m:

A= zeros(n,m)

3
Medii de calcul ingineresc Curs i aplicaii

VECTORI si MATRICE

matricea unitar de ordin n m:


matricea cu diagonal 1, de ordin n n

A= ones(n,m)
A= eye(n)

Vectorii pot fi definii n dou moduri:

introducerea explicit a componentelor vectorului;


Exemple:
>> v=[1 2 3 4 5 ]
creeaz un vector cu o linie i 5 coloane.
>> v(6)=6
conduce la vectorul: v=[1 2 3 4 5 6]

>>

1
c 2
3

Aadar c(2)=2
Al doilea mod este utilizat pentru a crea vectori cu elemente egal spaiate prin comanda:

k=amin:pas:amax
unde amin este valoarea primului element din vector, pas este valoarea incrementului,
amax limita pn la care pot lua valori componentele vectorului. Dac incrementul
lipsete, atunci implicit valoarea sa este 1.
Exemple:
>> k=0:0.5:5.1
creeaz un vector cu elementele 0, 0.5, 1, 1.5,....5 .
>> length(v)
returneaz lungimea vectorului v.

2.3

Construirea unei functii

Mediul de programare Matlab ofer posibilitatea crerii unei funcii ce folosete funcii
Matlab, funcii definite anterior, operatori predefinii etc. Numele fiierului n care este
scris funcia trebuie s fie identic cu numele funciei. De asemenea, prima linie a
fiierului trebuie s conin sintaxa caracteristic definiiei unei funcii:
function var_returnate = nume_functie(var_intrare)
De exemplu, o funcie ce realizeaz suma a dou variabile x i y, rezultatul fiind
returnat n variabila z, se realizeaz astfel:
function z=xplusy(x,y); z=x+y;

4
Medii de calcul ingineresc Curs i aplicaii

VECTORI si MATRICE
Fiierul astfel scris se salveaz sub denumirea xplusy.m . Funcia definit anterior
poate fi apelat din linia de comenzi Matlab, dintr-un script sau dintr-o alt funcie.
Exemplu:
>>a=1;b=2; c=xplusy(a,b);

2.4

Rezolvarea sistemelor de ecuatii liniare.


Compatibilitate determinata

S considerm sistemul:

2x y z 7

x y 2z 5
2y z 1

Definim matricea coeficienilor necunoscutelor, vectorul termenilor liberi i construim


matricea extins:
>> A=[2 1 1;1 -1 2;0 2 -1]
A=
2
1
1
1 -1
2
0
2 -1
>> B=[7;5;1]
B=
7
5
1
>> Aext=[A B]
Aext =
2
1
1
7
1 -1
2
5
0
2 -1
1
Compar rangul matricei A cu cel al matricei extinse:
>> rank(A),rank(Aext)
ans = 3
ans = 3
Deoarece sistemul este compatibil determinat (rangurile sunt egale i sunt egale si cu
numarul de necunoscute) solutia este data de formulele lui Cramer, solutie care se
determina simplu prin operatia
>>A\B
care afiseaza
1
2
3
Adica x=1, y=2, z=3.

2.5

Generarea vectorilor cu pas liniar si cu pas logaritmic


5

Medii de calcul ingineresc Curs i aplicaii

VECTORI si MATRICE

n MATLAB se pot genera vectori cu pas liniar sau vectori cu pas logaritmic.
Generarea vectorilor cu pas liniar implic cunoaterea limitelor intervalului (a min; amax) i a
pasului dintre dou elemente sau a numrului de elemente ale vectorului (N).
Dac se cunosc limitele intervalului i pasul dintre dou elemente, vectorul se genereaz
cu instruciunea:
x = amin:pas:amax
numrul de elemente al vectorului x este:

a max a min
1
pas

unde [] semnific partea ntreag a numrului. Dac pasul este mai mare ca zero, este
necesar ca amin < amax, iar dac pasul este mai mic dect zero este necesar ca a min > amax.
Dac se cunosc limitele intervalului i numrul de elemente ale vectorului, vectorul se
genereaz cu ajutorul funciei linspace, care este apelat cu urmtoarea sintax:
x = linspace(amin,amax,N)
rezultnd un vector cu N elemente (dac valoarea N nu este precizat atunci aceasta
este considerat implicit egal cu 100), pasul dintre dou elemente fiind:

pas

a max a min
N 1

Pentru generarea vectorilor cu pas logaritmic se utilizeaz funcia logspace ce se


apeleaz cu sintaxa:
x = logspace(amin,amax,N)
Vectorul x conine N elemente distribuite logaritmic ntre decadele [10 amin; 10amax]. Dac N
nu este precizat el este luat implicit 50.

2.6

Calcule cu matrice. Analiza matriceala

Formularea matricial a problemelor a condus la simplificarea metodelor de


rezolvare i a fcut posibil extinderea unor soluii deja cunoscute la domenii noi. n
continuare se vor prezenta funcii MATLAB pentru manipularea matricelor i pentru
analiza matriceal. Cunoaterea acestora este necesar pentru rezolvarea cu ajutorul
MATLAB-ului a diverselor probleme de automatizri, teoria sistemelor i identificarea
sistemelor.
Manipularea matricelor
Elementele individuale ale unei matrice pot fi apelate cu numele acesteia, urmat
de doi indici, cuprini ntre paranteze rotunde i separai prin virgul. Primul indice
semnific linia, iar al doilea coloana n care se gsete elementul apelat. Indicii pot fi
scalari sau vectori. Indicii vectori permit definirea unor submatrice prin care se pot referi
pri disparate dintr-o matrice. Utilizarea numai a semnului dou puncte : n locul
indicilor pentru linii sau pentru coloane, presupune considerarea tuturor elementelor pe
linii sau respectiv pe coloane. Crearea matricelor mari, precum i manipularea acestora
se face cu mult flexibilitate dac se utilizeaz indici vectori.
Inversarea coloanelor unei matrice A se face cu instruciunea:
A=A(:,n:-1:1) ,

6
Medii de calcul ingineresc Curs i aplicaii

VECTORI si MATRICE
iar inversarea liniilor se face cu instruciunea:
A=A(n:-1:1,:) .
De o mare importan este utilizarea fr indici, care are ca efect transformarea matricei
ntr-un vector coloan, citind coloanele una dup alta. Astfel, secvena urmtoare:
A=[1 2;3 4]
b=A(:)
are ca rezultat transformarea matricei A ntr-un vector coloan b.
Dac n partea stng a expresiei este asignat o instruciune de forma A(:), matricea A
trebuie s existe dintr-o utilizare anterioar.
Exemplu:
A=[1 2;3 4]
A(:)=11:14
returneaz matricea:
11 13
A

12 14
Pentru extragerea vectorilor cu elemente decupate din ali vectori, se folosesc formele:
j:k
- selecteaz elementele [j, j+1, j+2, .., k] ale unui vector. Dac j>k
vectorul
rezultat este gol.
j:i:k - selecteaz elementele [j, j+i, j+2i, .., k] ale unui vector. Vectorul rezultat
este
gol dac i>0 i j>k sau dac i<0 i j<k.
n cazul selectrii liniilor i coloanelor matricelor, se folosesc formele:
A(:,j) - selecteaz coloana j a matricei A;
A(i,:) - selecteaz linia i a matricei A;
A(:,:) - selecteaz toat matricea A;
A(j:k) - selecteaz elementele A(j), A(j+1), ., A(k) ale vectorului A;
A(:,j:k) - selecteaz toate liniile i coloanele de al j la k, A(:,j), A(:,j+1), ., A(:,k),
ale
matricei A;
A(:) - selecteaz toate elementele matricei A, privite ca o singur coloan
(ncepnd cu
prima).
Alt caz interesant este extragerea submatricelor prin vectori cu elemenete 0 i 1. Vectorii
cu elemente 0 i 1, creai de operatorii logici sau relaionali, au proprieti deosebite ce
pot conduce la scrierea unor programe foarte compacte. Dac A este o matrice de
dimensiunea mn i L este un vector de lungime m, cu elemente 0 i 1, instruciunea:
B=A(L,:)
returneaz n matricea B toate elementele din liniile matricei A pentru care elementul
corespunztor ca poziie din vectorul L este 1.
O matrice poate fi definit pe baza altor matrice de dimensiuni inferioare, ca n exemplul
de mai jos:
C=[A eye(4);ones(A) A^2]

7
Medii de calcul ingineresc Curs i aplicaii

VECTORI si MATRICE
Matricea C este compus din matricea A (de dimensiune 44), matricea identitate (de
dimensiune 44), matricea unitate (de dimensiune egal cu matricea A) i matricea A
ridicat la ptrat. Matricele folosite n asamblare trebuie s fie consistente n dimensiuni,
adic s determine blocuri care se integreaz compact n tabloul matricei rezultat, n caz
contrar se obin mesaje de eroare.
Redimensionarea unei matrice se poate face cu ajutorul funciei reshape. Aceast funcie
redimensioneaz o matrice A cu dimensiunea lp ntr-o alt matrice B, dimensiunea
mn. Pentru ca aceast operaie s fie posibil este necesar ca matricea A s aib
acelai numr de elemente cu matricea B, deci lp= mn. Sintaxa funciei este:
B=reshape(A,m,n)
Elementele matricei B (n ordinea succesiv a coloanelor i pe fiecare coloan de sus n
jos) sunt elementele matricei argument A (citite de sus n jos i de la stnga la dreapta).
Crearea unei matrice diagonale se face cu funcia diag, care se apeleaz cu urmtoarea
sintax:
Y=diag(X, k)
unde X este vectorul sau matricea asupra creia se opereaz, iar argumentul opional k
indic diagonala acesteia, cu urmtoarea semnificaie:
k = 0 diagonala principal;
k > 0 indic diagonala k de deasupra celei principale;
k < 0 indic diagonala k de sub cea principal;
Dac X este un vector cu n componente, funcia diag(X, k) genereaz o matrice ptrat
de ordinul n + abs(k), cu elementele lui X pe diagonala k. Dac x este o matrice, funcia
diag(X, k) extrage un vector coloan format din elementele diagonalei k a matricei X.
Pentru a crea o matrice superior i inferior triunghiular, se folosesc funciile MATLAB tril
i triu, apelate cu sintaxele:
Y=tril(X,k)
Y=triu(X,k)
unde argumentele au aceeai semnificaie ca mai sus. Funcia triu(X,k) nlocuiete cu
zero toate elementele matricei X de sub diagonala k. Funcia tril(X,k) nlocuiete cu zero
toate elementele matricei X de deasupra diagonalei k.
n acest paragraf se vor prezenta funciile i modurile de calcul a determinantului unei
matrice, a inversei unei matrice, a normei i rangului unei matrice. Calculul
determinantului unei matrice se face cu funcia det ce are urmtoarea sintax:
D=det(X).
Prin definiie, inversa unei matrice ptrate A este matricea A-1, care satisface relaia:

A * A 1 A 1 * A I
unde I este matricea unitate. Se tie c o matrice este inversabil numai dac
determinantul acesteia este diferit de zero, adic matricea este nesingular. Inversa se
calculeaz cu funcia inv, ce este apelat cu sintaxa:
Y=inv(X).
Rangul unei matrice reprezint numrul de linii sau coloane liniar independente ale
acesteia i se determin cu funcia rank. Aceast funcie este apelat cu sintaxa:
r =rank(X, tol).
Ea returneaz numrul de valori singulare ale lui X, mai mari dect parametrul opional
tol.

8
Medii de calcul ingineresc Curs i aplicaii

VECTORI si MATRICE
Norma unei matrice (sau vector) este un scalar care d o msur a mrimii elementelor
matricei (sau vectorului). Normele vectorilor sau matricelor se calculeaz cu funcia
norm:
n =norm(X).
Aceast funcie calculeaz mai multe tipuri de norme pentru matrici sau vectori, n
funcie de sintax. Detalii se pot afla consultnd help-ul funciei.

Test de autoevaluare 2.1


1
3

1) Sa se introduca elementele linie cu linie A


2)
3)
4)
5)

2
6

Determinati A(2,1);
Sa se introduca vectorul v={5 2 3 -4 6 8};
Aflati lungimea vectorului v;
Introduceti v(7)=9;

6) Fie vectorul

c 2
3

7) Determinati c(2);

Lucrare de verificare la Unitatea de nvare nr. 2


1. Se considera matricele: A =[2 3 4;5 2 9;16 0 0] B =[1 2 3;1 1
1;2 3 2] i scalarul p=2.
a) S se calculeze n MATLAB:

9
Medii de calcul ingineresc Curs i aplicaii

VECTORI si MATRICE

1. C1=A+B 2. C2=A-B 3. C3=A+p 4. C4=A*B 5. C5=A*p 6. D=A 7. E=B 8.


Z=A/B 9. W=A\B 10. Y=A^P

S se verifice dac Z = A B 1 i W A 1 B

b) S se genereze un vector cu pas liniar, cu limitele: amin = 2,


amax =10, pas = 2.
c) S se genereze un vector cu pas liniar, cu limitele: amin = 2,
amax =10, N = 5, unde N este numrul de elemente.
d) S se genereze un vector cu N=5 elemente distribuite
logaritmic ntre decadele 10 2 i 10 2
e) Fie un vector
y=1:0.11:123 . S se calculeze lungimea
vectorului y i s se genereze un vector cu toate elementele 1 de
lungime egal cu lungimea vectorului y.
f) S se efectueze produsul scalar al vectorilor:
a=[2 3]
b=[4 4]
g) S se calculeze produsul element cu element al matricilor:
A=[1 2 3; 4 5 6; 7 8 9]
B=[0 1 0; 0 1 0; 0 1 0]
2. Realizarea unui script
S se scrie un program n MATLAB care s calculeze produsul scalar
al vectorilor
a 3i 4 j i b i 2 j 2k
3. Realizarea unei funcii
S se creeze o funcie, denumit yprodx.m, prin care se face
produsul scalar a doi vectori linie x i y, de aceeai lungime.

Rspunsuri i comentarii la ntrebrile din testele


de autoevaluare
1) >>A=[1 2 3; 3 6 8]
Aceast comand creeaz matricea
A=1 2 3

10
Medii de calcul ingineresc Curs i aplicaii

VECTORI si MATRICE
368
2) Comanda A(2,1) afieaz rezultatul:
ans = 3
3) >> v=[5 2 3 -4 6 8 ]
creeaz un vector cu o linie i 6 coloane.
4) >>length(v)
ans=6
5) v(7)=9
conduce la vectorul: v=[5 2 3 -4 6 8 9]

6) >>

1
c 2
3

ans
c=
1
2
3
7) c(2)=2

Concluzii
Introducerea matricelor (deci si a vectorilor) n mediul de lucru se
face prin una din metodele:
introducerea explicit;
generarea prin instruciuni i funcii;
crearea de fiiere M;
ncrcarea din fiiere de date externe.
Cea mai simpl metod const n utilizarea unei liste explicite.
Trebuie respectate urmtoarele reguli:
elementele unei linii trebuie separate prin spaii libere sau
virgul;
liniile se separ prin punct-virgul ;;
elementele matricei sunt cuprinse ntre paranteze drepte [ ]
. Elementele matricelor pot fi numere reale sau complexe sau orice
alt variabil MATLAB.
Elementele unei matrice A pot fi identificate, n MATLAB, prin
notaia A(i,j) i semnific elementul de la intersecia liniei i cu
coloana j. Pentru a face referire la un element al matricei sunt
necesari doi indici, iar referirea la un element al unui vector se face
cu un singur indice.

11
Medii de calcul ingineresc Curs i aplicaii

VECTORI si MATRICE

Bibliografie
1. Ghinea
M.,
Firiteanu
V.,
MATLAB.Calcul
numeric.Grafica.Aplicatii, Editura TEORA,2004
2. Karris S.T., Numerical Analysis Using MATLAB and
Spreadsheets, editia a doua, Orchard Publications, 2004
3. Johnston & Mathews, Calculus.Manual MATLAB, 2004
4. http://www.mathworks.com

12
Medii de calcul ingineresc Curs i aplicaii

S-ar putea să vă placă și