Documente Academic
Documente Profesional
Documente Cultură
Pagina
VECTORI si MATRICE
2.1
Exemple:
1) >>v=[2 3 -1 4]
2) >>v=[2;3;-1;4]
3) >>v(2)
nostru 3;
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
A= zeros(n,m)
3
Medii de calcul ingineresc Curs i aplicaii
VECTORI si MATRICE
A= ones(n,m)
A= eye(n)
>>
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
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
S considerm sistemul:
2x y z 7
x y 2z 5
2y z 1
2.5
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
2.6
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.
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);
9
Medii de calcul ingineresc Curs i aplicaii
VECTORI si MATRICE
S se verifice dac Z = A B 1 i W A 1 B
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