Vous êtes sur la page 1sur 23

CURS 2

1


CURS 2
1. Matrice, vectori i scalari. Notaii
MATLAB-ul este un pachet de programe care lucreaz numai cu un singur tip de obiecte, matrice
numerice rectangulare, cu elemente reale sau complexe. n acest sens, scalarii sunt asimilai matricelor
cu o linie i o coloan (1x1), iar vectorii sunt asimilai matricelor cu o linie (1xn) sau o coloan (nx1).
Operaiile i comenzile n MATLAB sunt aproape naturale, n sens matriceal, asemntor modului de
calcul obinuit. Astfel entitile:
[ ]
1
1 2 1 2 3
; ; 2 ; 1 2 3
3 4 4 5 6
3
A B C D
(
( (
(
= = = =
( (
(

(


sunt toate matrice n accepiunea MATLAB. A este o matrice 2x2, B este 2x3, C este 3x1, D este 3x1.
Elementele unei matrice, fie aceasta A, pot fi identificate prin una dintre notaiile: A[i,j], A(i,j) etc. i
semnific elementul de la intersecia liniei i cu coloana j. Ultima notaie, A(i,j), este cea care a fost
adoptat si n MATLAB. Dimensiunea unei matrice este precizat de o pereche de numere care arat
numrul de linii si coloane al matricei respective. (D este o matrice 3x1). O matrice cu o singur linie
sau o singur coloan se numete vector linie (D) sau vector coloan (C), elementele acesteia putnd fi
identificate cu un singur indice. O matrice cu o singur linie si o singur coloan este un scalar.
Pentru a face referire la un element A(i,j) al, unei matrice A, sunt necesari doi indici, indicele de linie i
indicele de coloan, n aceast ordine. Referirea unui element al unui vector poate fi fcut numai cu un
singur indice. Astfel:
A(2,1) = 3; B(1,3) = 3, C(2) = 2; D(3) = 3.
2. Definirea matricelor simple
Definirea matricelor se face prin una dintre urmtoarele metode:
- introducerea explicit a listei de elemente;
- generarea prin instruciuni si funcii;
- crearea de fiiere M;
- ncrcarea din fiiere de date externe.
MATLAB-ul nu conine instruciuni de dimensionare i declaraii de tip, iar memoria este alocat
automat, pn la valoarea maxim disponibil. Cea mai simpl metod de definire a matricelor mici
const n utilizarea unei liste explicite. La introducerea unei astfel de liste trebuie respectate
urmtoarele reguli:
CURS 2

2

- elementele unei linii trebuie separate prin blanc-uri sau virgule;
- liniile se separ prin semnul punct-virgul ;;
- elementele matricei sunt cuprinse ntre paranteze drepte [ ].
Astfel, matricea A din paragraful anterior poate fi introdus cu secvena:
A=[l 2;3 4]
care returneaz rezultatul:
1 2
3 4
A =

Matricea A, astfel definit, poate fi utilizat n calcule sau poate fi salvat ntr-un fiier de date pentru o
folosire ulterioar.
Pentru matricele mari, la care datele de intrare nu ncap pe o singur linie, se poate proceda la
nlocuirea semnului ; cu Enter", ca n exemplu urmtor:
A=[l 2
3 4]

Elementele matricelor
Elementele matricelor pot fi numere reale sau complexe, precum si orice expresie MATLAB. De
exemplu, pentru:
x=[-1.3 sqrt(3) (l+2+3)*4/5]
rezult:
x = [ -1.3000 1.7321 4.8000 ]
Elementele unei matrice pot fi referite cu indici cuprini ntre paranteze rotunde ()", ca n exemplul:
a = x(2) care returneaz:
a =1.7321
De remarcat c dac se asigneaz o valoare unui element care ocup o poziie n afara dimensiunii
maxime a matricei sau vectorului referit, dimensiunea acestuia este mrit automat pn la valoarea
indicelui noului element, iar elementele nedefinite sunt setate la valoarea zero. n acest sens,
instruciunea:
CURS 2

3

x(5)= abs(x(l))
returneaz rezultatul:
x = [-1.3000 1.7321 4.8000 0 1.3000]
iar instruciunea:
A(2,4)= 6
returneaz rezultatul:
1 2 0 0
3 4 0 6
A =

n exemplele de mai sus s-au utilizat 2 funcii MATLAB predefinite a cror denumire este rezervat:
abs modulul unui numr; sqrt rdcin ptrat
O modalitate de a construi matrice mari const n folosirea matricelor mici ca elemente. Spre exemplu,
din dou matrice 2x3 se poate construi o matrice 4x3; dimensiunile matricelor utilizate trebuie s fie
astfel alese nct s realizeze tablouri rectangulare complete.
Fie A1 i A2 cele dou matrice utilizate. Cu secvena urmtoare:
Al = [l 2;3 4]
A2 = [5 6;7 8]
A = [Al; A2]
se obine rezultatul:

1 2
3 4
5 6
7 8
A =

O matrice mai mic poate fi extras din matrice mai mari utiliznd semnul :" (dou puncte). De
exemplu:
B = A(2:3,:)
extrage liniile doi si trei i toate coloanele din matricea curent A, obinndu-se matricea B:
CURS 2

4

3 4
5 6
B =

Declaraii i variabile
MATLAB-ul este un limbaj de expresii. Expresiile tiprite de utilizator sunt interpretate i evaluate.
Instruciunile MATLAB sunt, de cele mai multe ori, de forma:
variabila = expresie
sau, mai simplu:
expresie
Expresiile sunt compuse din operatori sau alte caractere speciale, din funcii i nume de variabile.
Evaluarea expresiei produce o matrice, care este afiat pe ecran i atribuit unei variabile. Dac
numele variabilei i semnul egal (variabila=) sunt omise, MATLAB-ul creaz automat o variabil cu
numele ans, ca n exemplul:
3/4
care returneaz:
ans= 0.7500
Orice instruciune este n mod normal terminat cu Enter". Dac ultimul caracter al acesteia este
punct-virgul ;, instruciunea este executat, dar tiprirea este suprimat. Utilizarea acestui caracter la
sfritul unei instruciuni n fiiere-M este necesar n situaiile n care nu se dorete afiarea datelor
intermediare. De exemplu:
A=[1 2 3; 4 5 6;7 8 9] ;
introduce matricea A, dar nu o afieaz. Tastarea numelui unei variabile urmat de Enter" afieaz
valoarea acesteia.
Dac expresia este aa de mare nct declaraia nu ncape pe o singur linie, se utilizeaz semnul ...
(trei puncte), urmat de Enter", pentru a preciza c instruciunea continu pe linia urmtoare. Astfel,
instruciunea:
S=1+2+3+...
4+5+6;
evalueaz suma celor ase numere i o atribuie variabilei S. Spaiile dintre semnele =, +, - i
numere sunt opionale.
Numele de variabile si funcii au ca prim caracter o liter, urmat de litere, cifre sau caracterul
underscore (adic _). Dei se pot folosi oricte caractere, MATLAB-ul reine ca nume de variabil
CURS 2

5

numai primele 19 caractere. MATLAB-ul face deosebirea ntre literele mari i mici (case sensitive),
astfel nct a" si A" sunt dou variabile distincte.

1.OPERAII ARITMETICE
Calculele aritmetice asupra tablourilor de date n MATLAB pot fi: - operaii dup regulile calculului
matriceal - operaii cu matrice; - operaii dup regulile calculului scalar - operaii cu tablouri.
Operatorii folosii n calculele aritmetice cu tablouri i matrice sunt prezentai n tabelul 1:
Tabelul 1. Operatori aritmetici MATLAB
Operaia Scalari Matrice Tablouri
Adunarea + + +
Scderea - - -
nmulirea * * .*
mprirea la stnga \ \ .\
mprirea la dreapta / / ./
Ridicarea la putere ^ ^ ^
Transpunerea A A A

1.1. Operaiile aritmetice cu scalari
Operaiile aritmetice ntre doi scalari sunt prezentate n tabelul 2.

CURS 2

6


Tabelul 2. Forma MATLAB a operaiilor cu scalari
Operaia Forma algebric Forma MATLAB
Adunare a+b a+b
Scdere a-b a-b
nmulire axb a*b
mprire la dreapta a: b a/b
mprire la stnga b: a a\b
Ridicare la putere a
b
a^b
Expresiile aritmetice pot fi evaluate i rezultatul memorat n variabile specificate. Astfel, instruciunea:
x=a+b
atribuie variabilei x, suma dintre variabilele a si b. Instruciunea: k=k+1 atribute variabilei k o nou
valoare, egal cu suma dintre vechea valoare i constanta 1. n urma instruciunilor succesive:
a=1;a=2.5 n variabila a se afl valoarea 2.5.
O variabil introdus fr nominalizare este asignat variabilei ans (answer). n variabila ans este
memorat n permanen valoarea ultimei variabile creia nu i s-a atribuit un nume.

1.1.1. Ordinea operaiilor aritmetice
Ordinea operaiilor n MATLAB, tabelul 7.3, este aceeai cu cea a operaiilor aritmetice standard,
cunoscut n matematica elementar.
CURS 2

7



Tabelul 3. Ordinea operaiilor aritmetice
Ordinea Operaia
1 parantezele
2 ridicarea la putere
3 nmulirea si mprirea
4 adunarea si scderea

1.1.2. Limitele calculelor
Dei variabilele memorate au un interval foarte mare, cel mai adesea fiind ntre limitele 10
-308
i 10
308

(vezi funciile MATLAB realmax si realmin), totui, uneori este posibil ea rezultatul unei expresii s
depeasc aceste limite, aa cum se ntmpl n exemplul:
x = 2.5*10
200
y = 10
200
z= x*y = 2.5*10
400
. Deoarece z este n afara limitelor de mai sus, valoarea calculat z nu poate fi
memorat. MATLAB-ul nregistreaz . Se verific acest lucru cu secvena:
x=2.5*10^200; y=10^200
z=x*y care retumeaz:
z=Inf
CURS 2

8

Rezultatul unui calcul este mai mic dect 10
-308
calculatorul nregistreaz valoarea zero.
n MATLAB rezultatul mpririi cu zero este . n acest caz se afieaz mesajul de atenionare
Warning:Divide by zero, dar calculele continu cu operandul .
1.2. Operaiile aritmetice cu tablouri
Operaiile cu tablouri sunt operaii aritmetice (nmulire, mprire, ridicare la putere, etc) ntre
elementele situate n aceeai poziie ale tablourilor, cunoscute sub numele de operaii element cu
element.
Pentru a preciza c nmulirea se efectueaz element cu element ntre componentele a dou matrice de
aceleai dimensiuni, se utilizeaz operatorul de nmulire precedat de punct (.*), adic:
C=A.*B
Pentru efectuarea operaiilor cu tablouri se folosesc aceiai operatori ca n operaiile cu scalari,
precedai de semnul punct ., semn ce indic efectuarea operaiilor n ordinea element cu element.
Dac unul dintre operanzi este un scalar, acesta opereaz cu fiecare element al tabloului.
1.2.1. Adunarea i scderea
Exemplul 1. Fie: A=[2 5 6], B=[4 3 2], p=2. S se calculeze: C=A-B, D=A-p i E=p-A. Cu secvena
MATLAB:
A=[2 5 6]; B=[4 3 2]; p=2; C=A-B
D=A-p
E=p-A
se obin rezultatele:
C = [-2 2 4]
D = [0 3 4] E = [0 -3 -4]
1.2.2. nmulirea tablourilor
CURS 2

9

Exemplul 2. Fie: A=[2 5 6], B=[4 3 2], p=2. S se calculeze : C=A.*B, D=A.*p si E=p.*A . Cu
secvena MATLAB:
A=[2 5 6}; B=[4 3 2];p=2; C=A.*B D=A.*p E=p.*A
se obin rezultatele: C=[8 15 12] D=[4 10 12] E=[4 10 12]
1.2.3. mprirea la dreapta
Operaia de mprire Ia dreapta, element cu element, ntre dou tablouri este simbolizat cu operatorul
punct-slash ( ./ ). Instruciunea: Z=X./Y reprezint mprirea element cu element a tablourilor X si Y,
rezultnd elementele: Z(i,j) = X(i,j)/Y(i,j)
Exemplul 3. Fie: A=[2 5 6], B=[4 3 2], p=2. S se calculeze: C=A./B, D=A./p i E=p./A. Cu secvena
MATLAB:
A=[2 5 6]; B=[4 3 2]; p=2; C=A./B D=A . /p E=p./A
se obine rezultatul:
C=[0.5000 1.6667 3.0000]
D=[1.0000 2.5000 3.0000]
E=[1.0000 0.4000 0.3333]
1.2.4. mprirea la stnga ;
Operaia de mprire la stnga, element cu element, ntre dou tablouri este simbolizat cu operatorul
punct-bakslash ( .\ ). Instruciunea: Z = X.\Y reprezint mprirea element cu element a tablourilor X i
Y, cu aceleai dimensiuni, rezultnd un tablou cu elementele: Z(i,j) = Y(i,j)/X(i,j)
Prin urmare: Z = X.\Y = Y./X
Exemplul 4. Fie: A=[2 5 6] B=[4 3 2] p=2. S se calculeze : C=A.\B , D=A.\p i E=p.\A Cu secvena
MATLAB:
A=[2 5 6]; B=[4 3 2]; p=2; C=A.\B D=A. \p E=p .\A se obin rezultatele:
CURS 2

10

C=[ 2.0000 0.6000 0.3333] D=[1.0000 0.4000 0.3333] E=[1.0000 2.5000 3.0000]
1.2.5. Ridicarea la putere
Operaia de ridicare la putere element cu element ntr-un tablou este simbolizat cu operatorul punct-^
(.^). Urmtoarea instruciune:
Z=X.^Y
reprezint ridicarea fiecrui element din tabloul X la puterea indicat de valoarea elementului din
aceeai poziie a tabloului Y, adic: Z(i,j) = X(i,j)^Y(i,j)
Dac X este un scalar, se las un blanc ntre scalar i operatorul de ridicare la putere .^ pentru a nu
interpreta punctul care indic operarea cu tablouri de elemente ca punctul zecimal.
Exemplul 5. Fie: A=[2 5 6], B=[4 3 2], p=2. S se calculeze : C=A.^B, D=A.^p i E=p.^A. Cu secvena
MATLAB:
A=[2 5 6}; B=[4 3 2]; p=2; C=A.^B D=A.^p E=p .^A
se obin rezultatele: C=[16 125 36] D=[4 25 36] E=[4 32 64]
1.2.6. Transpunerea tablourilor
Operaia de transpunere a unui tablou este simbolizat de operatorul punct-apostrof. Cu instruciunea:
Z=Y.'
liniile tabloului Y devin coloanele tabloului transpus Z. Acest lucru face ca un tablou Y cu dimensiunea
m x n s devin un tablou Z cu dimensiunea n x m.
Exemplul 6. S se determine transpusa tabloului:
1 1
3 2*
i
Z
i i
+ (
=
(



Cu secvena MATLAB:
Z=[l 1+i;i 3-2*i]; Z1=Z.'
se obin rezumatele: Z1 =
CURS 2

11

1.0000 0 +1.0000i
1.0000 + 1.0000i 3.0000 - 2.0000i

1.3. Operaiile aritmetice cu vectori
1.3.1. Produsul scalar
Produsul scalar a doi vectori de aceeai dimensiune este un scalar, egal cu suma produselor
corespunztoare acelorai poziii:
( )
1
( )
N
i
C A B a i b i
=
= =



Produsul scalar a doi vectori, A i B, se calculeaz cu instruciunea:
C=sum(A.*B)
Dac A este de dimensiunea 1xN i B de dimensiunea Nx1, atunci sunt posibile urmtoarele expresii
pentru calculul produsului scalar:
E=sum(A'.*B) F=sum(A.*B')
Cosinusul unghiului vectorilor: ;
x y z x y z
A a i a j a k B b i b j b k = + + = + +

se calculeaz cu relaia:
( )
2 2 2 2 2 2
cos ,
x x y y z z
x y z x y z
a b a b a b
A B
A B
A B
a a a b b b
+ +

= =

+ + + +


unde A

i B

sunt lungimile, norma sau modulul.


Dac produsul scalar este nul, cei 2 vectori sunt ortogonali.
Exemplul 7. S se calculeze produsul scalar i unghiul dintre vectorii: 3 4 , 2 2 a i j b i j k = = +


Cu secvena MATLAB:
a=[3 -4 0]; b=[l 2 -2] ; ab=sum(a.*b);% -produsul scalar
mod_a=norm(a);mod_b=norm(b);
CURS 2

12

alfa=acos(ab/(mod_a*mod_b))*180/pi se obine rezultatul:
ab=-5
alfa= 109.4712 grade
1.3.2. Produsul vectorial
Produsul vectorial a doi vectori A

i B

:
x y z
x y z
i j k
C A B a a a
b b b
= =



este un vector perpendicular pe planul celor doi vectori. Modulul produsului vectorial este:
( )
sin , C A B A B =


De exemplu, dac A si B descriu vectorii cu ajutorul coordonatelor (proieciile dup axele Ox, Oy i
Oz), cu secvena MATLAB:
A=[ax ay az]; B=[bx by bz]; C= A'*B se obine ca rezultat matricea C, cu dimensiunea 3x3.
x k j
C k x i
j i x
(

(
=
(
(

(




J
Componentele C(i,j) au urmtoarea semnificaie:
- pentru i j reprezint un vector orientat dup versorul menionat la pozif ia respectiv a matricei C;
- pentru i j = reprezint o component a produsului scalar (marcat cu x n matricea C)
Vectorul rezultant C are componentele: cx=C(2,3)-C(3,2), cy=C(3,l)-C(l,3) cz=C(l,2)-C(2,l) PV=[cx cy
cz]; %Produsul vectorial
Suma elementelor diagonalei principale constituie produsul scalar al vectorilor A

i B

, i se
CURS 2

13

calculeaz cu instruciunea MATLAB:
PS=sum(diag (C)); %Produsul scalar. Prin urmare, produsul a doi vectori este:
un scalar, dac operaia este un produs scalar;
o matrice, dac operaia este un produs vectorial
Exemplul 8. S se calculeze produsul vectorial si scalar al vectorilor: 5 3 , 2 2 a i j k b i j k = =


a=[5 -3 -1]; b=[-l -l -2]; C=a'*b; cx=C(2,3)-C(3,2); cy=C(3,l)-C(l,3); cz=C(l,2)-C(2,l);
PV=[cx cy cz] %produsul vectorial
PSl=sum(a.*b) % produsul, scalar metoda l
PS2=sum(diag(C) ) %produsul scalar metoda 2
se obin rezultatele:
PV = [5 11 -8] PS1=0 PS2=0
care reprezint vectorul produs vectorial: 5 11 8 a i j k = +

; produsul scalar nul evideniaz faptul c


cei doi vectori sunt perpendiculari.
1.4. Operaiile aritmetice cu matrice
Operaiile uzuale de algebr liniar cu matrice sunt simbolizate cu semnele grafice: * , \ , /, A , ', i se
efectueaz dup regulile cunoscute din calculul matriceal.
1.4.1. Adunarea i scderea
Operaia de adunare a dou matrice este simbolizat cu operatorul plus (+). Instruciunea: Z=X+Y
reprezint adunarea matricelor X i Y, rezultnd elementele: Z(i,j)=X(i,j)+Y(i,j)
Matricele X i Y trebuie s aib aceleai dimensiuni, n afara cazului cnd X sau Y este un scalar. Un
scalar a poate fi adunat cu orice matrice, rezultnd elementele: Z(i,j)=a+X(i,j) Operaia de scdere a
dou matrice este simbolizat cu operatorul minus ( - ). Instruciunea: Z = X-Y reprezint scderea
CURS 2

14

matricei Y din X, rezultnd elementele: Z(i,j)=X(i,j)-Y(i,j)
Matricele X i Y trebuie s aib aceleai dimensiuni, n afara cazului cnd X sau Y este un scalar. Un
scalar a poate opera cu orice matrice, rezultnd elementele: Z(i,j)=X(i,j)-a sau Z(i,j)=a-X(i,j)
Exemplul 9. Fie: A =[1 2;3 4], B=[5 6;7 8], p=2
S se calculeze: A+B, A-B, A+p .
7.4.2. nmulirea matricelor
Operaia de nmulire este simbolizat cu operatorul ( * ). Urmtoarea instruciune: Z=X*Y reprezint
matricea produs a avnd elementele ( ) ( ) ( ) , , ,
k
Z i j X i k Y k j =

. Produsul matriceal este posibil dac


numrul coloanelor matricei X este egal cu numrul liniilor matricei Y, elementul Z(i,j) fiind suma
produselor dintre elementele liniei i cu elementele corespondente din coloana j. Produsul matrice-
vector este un caz special al cazului genera! al produsului matrice-matrice. De asemenea, un scalar
poate poate fi nmulit cu orice matrice, realizndu-se nmulirea cu fiecare element al matricei; Z(i,j) =
a*X(i,j).
Exemplul 10. Fie matricele A, B i scalarul p din exemplul anterior. S se calculeze A*B, A*p.
1.4.3. mprirea la dreapta
Operaia de mprire la dreapta a dou matrice este simbolizat cu operatorul slash (/). Urmtoarea
instruciune: Z = X/Y
reprezint mprirea la dreapta a matricelor X i Y, i este identic cu X*Y
-1
(Y
-1
este inversa matricei
Y n MATLAB funcia de calcul a inversei unei matrice este inv).
Exemplul 11. Fie: A =[1 2;3 4], B=[5 6;7 8]. S se calculeze A/B n cele 2 moduri posibile
1.4.4. mprirea la stnga
Operaia de mprire la stnga a dou matrice este simbolizat cu operatorul backslash (\). Urmtoarea
instruciune: Z=X\Y reprezint mprirea la stnga a matricelor X i Y i este identic cu X
-1
*Y (X
-1

este inversa matricei X).
CURS 2

15

Dac A este o matrice n x n, iar B este un vector coloan cu n componente, atunci X=A\B este soluia
sistemului de ecuaii AX=B, obinut prin eliminarea Gauss. Dac unul dintre operanzi este scalar,
operaia nu este posibil.
Exemplul 12. Fie sistemul
2 5 3
2
x y
x y
+ =

S se rezolve prin 2 metode: cu solve i cu mprirea la


stnga (X=[x ;y] ;i identificai matricile A i B
1.4.5. Ridicarea la putere
Operaia de ridicare la putere a unei matrice este simbolizat cu operatorul (^). Urmtoarea
instruciune: Z=X^p reprezint ridicarea la puterea p a matricei X. Expresia X^p are sens doar pentru X
matrice ptrat i p scalar.
Dac p este un ntreg pozitiv, ridicarea la putere este obinut prin nmuliri repetate:
Z = X
p
= X * X*...* X ,Vp>0 .
iar dac p este un ntreg negativ, X este mai nti inversat i apoi se nmulesc inversele de p ori:
Z = X
p
= inv(X) * inv(X)*...*inv(X) ,Vp<0
Exemplul 13. Fie: Z =[l 2;3 4] i p=-2 . S se calculeze Z^p.
1.4.6. Transpunerea matricelor
Operaia de transpunere a unei matrice este simbolizat cu operatorul apostrof. Cu instruciunea: Z=Y
liniile matricei Y devin coloanele matricei transpuse Z. Acest lucru face ca pentru o matrice Y cu
dimensiunea m x n s se obin o matrice Z cu dimensiunea n x m. Dac elementele matricei Y sunt
numere reale, operaia de transpunere face ca: Z(i,j)=Y(j,i). Dac elementele matricei Y sunt numere
complexe, operaia de transpunere returneaz conjugata transpusei, adic:
Z(i,j)=conj(Y(j,i))=real(Y(j,i))-i*imag(Y(j,i))
Z(i,j) = conj(Y(j,i)) = real(Y(j,i))- i*imag(YG,i))
Exemplul 14. S se determine transpusa matricei Z = [1 1+i;i 3-2*i]. I.
CURS 2

16


1.4.7. Alte instructiuni in prelucrarea matricelor si vectorilor
- Determinarea rangului unei matrice.
Fie o matrice A. Rangul matricei se determina cu instruciunea: rank(A)
- Determinantul unei matrice.
Fie o matrice A. Determinantul matricei se calculeaza cu instruciunea: det(A)
- Inversa unei matrice.
Fie o matrice A. Inversa matricei se determina cu instruciunea: inv(A)
- Dimensiunea unei matrice
Fie o matrice A. Dimensiunea matricei se determina cu instruciunea: [m,n]=size(A)
- Lungimea unui vector
Fie un vector b. Lungimea vectorului se determina cu instruciunea: p=length (b)

GENERAREA VECTORILOR I A MATRICELOR UZUALE

Funciile folosite pentru generarea vectorilor i a matricelor uzuale sunt:
zeros genereaz matricea nul;
ones genereaz matricea unitate;
eye genereaz matricea identic;
rand genereaz numere aleatoare cu distribuie uniform;
randn genereaz numere aleatoare cu distribuie normal;
CURS 2

17

linspace genereaz un vector cu pas liniar;
logspace genereaz un vector cu pas logaritmic;
meshgrid genereaz o matrice a reelei n planul X-Y;
: genereaz un vector cu pas constant.


1. GENERAREA VECTORILOR
1.1. Generarea vectorilor cu pas liniar
Generarea vectorilor cu pas liniar implic cunoaterea limitelor intervalului (amin i amax) i a pasului
dintre dou elemente (pas), sau numrul de elemente ale vectorului. Metoda de generare a vectorului se
alege funcie de datele de intrare.
- Dac se cunosc limitele intervalului (amin i amax) i pasul (pas) dintre dou elemente, se
genereaz vectorul cu instruciunea:
x = amin : pas : amax
unde: amin, amax i pas sunt scalari i pot avea orice valoare real. Numrul de elemente ale vectorului
rezultant x este:
max min
1
a a
N
pas
(
= +
(


unde [ ]" semnific partea ntreag a rezultatului expresiei dintre paranteze. Instruciunea presupune
c:
- dac pas > 0, atunci este necesar ca amin < amax,
- dac pas < 0, atunci este necesar ca amin > amax. Spre exemplu:
x= 2:5:25
x= -20:3:10
CURS 2

18

x= 5:-2:-4
x =-15:-3:-25
x = 5:15
sunt corecte, n timp ce urmtoarele instruciuni: x = 2:-l:5; x = -5:2:-10 sunt incorecte.
Dac pasul se omite, valoarea acestuia este considerat implicit egal cu unitatea.
- Dac se cunosc limitele intervalului (amin i amax) i numrul de elemente (N) ale vectorului
generat cu pas liniar, atunci se folosete instruciunea:
x = linspace(amin, amax, N). Pasul dintre dou elemente rezult egal cu:
max min
1
a a
pas
N


Dac valoarea N este omis, atunci aceasta este considerat implicit egal cu 100. Valorile limitelor
intervalului, amin i amax, nu sunt supuse nici unei restricii si pot fi date n orice ordine (dac amin >
amax vectorul generat va fi ordonat descresctor).
Exemplul 15. S se genereze un vector cu pas liniar, cu limitele: amin =2.5, amax = 7 si pasul egal cu
1.25. Secvena:
x = 2.5 : 1.25 : 7 conduce la rezultatul:
X = [2,5000 3.7500 5,0000 6.2500]
Exemplul 16. S se genereze un vector cu pas liniar, cu limitele: amin = 2.5, amax = 7 i N = 4
elemente. Secvena:
x = linspace(2.5, 7, 4) conduce la rezultatul:
x = [ 2.5000 4.0000 5.5000 7.0000 ] , .
Dei genereaz acelai numr de elemente, prima secven controleaz pasul i poate modifica eventual
limita superioar, iar a doua controleaz numrul de elemente si menine limitele impuse.
CURS 2

19

1.2. Generarea vectorilor cu pas logaritmic
Funcia logspace genereaz vectori cu pas logaritmic; se apeleaz cu sintaxa: x = logspace(amin, amax,
N). Vectorul x conine N elemente distribuite logaritmic ntre decadele [10
amin
, 10
amax
]. Dac numrul
de elemente N este omis, se genereaz un vector cu 50 elemente distribuite logaritmic ntre decadele
[10
amin
, 10
amax
]. Valorile limitelor intervalului, amin i amax, nu au nici o restricie i pot fi date n
orice ordine. Dac amin > amax, vectorul generat va fi ordonat descresctor.
Exemplul 17. S se genereze un vector cu N=5 elemente distribuite logaritmic pe intervalul [10
-2
,10
2
].
Secvena:
x = logspace(-2, 2, 5) determin rezultatul:
x = [0.0100 0.1000 1.0000 10.0000 100.0000]
Exemplul 18. S se genereze un vector cu N=6 elemente distribuite logaritmic pe intervalul [10
-2
, ].
Secvena:
x = logspace(-2, pi, 6) determin rezultatul:
x = [ 0.0100 0.0316 0.0997 0.3150 0.9948 3.1416].
Observaie. Cnd amax= , elementele vectorului sunt distribuite ntre amin i pi.

2. GENERAEA MATRICELOR
2.1. Matricea goal
Dei n MATLAB nu exist instruciuni pentru declararea tipurilor de variabile, iar matricele se
autodimensioneaz n timpul utilizrii, pentru a crete viteza de lucru se procedeaz la crearea unei
matrice goale. Acest lucru se face la nceputul sesiunii de lucru sau la apelarea unui program.
Declararea unei matrice goale se face cu instruciunea:
X = [] care asigneaz lui X matricea de dimensiuni 0x0.
Orice matrice goal trebuie sa aib cel puin una din dimensiuni zero. Pentru a testa dac o matrice X
CURS 2

20

este goal, se folosete funcia MATLAB isempty, care se apeleaz cu sintaxa:
r = isempty(X) i retumeaz n variabila r valoarea 1 dac X este matrice goal i 0 n caz contrar.
2.2. Matricea unitate
Matricea unitate este o matrice cu toate elementele 1:
1 1 ... 1
1 1 ... 1
... ... ... ...
1 1 ... 1
U
(
(
(
=
(
(


i poate fi generat cu funcia ones; se apeleaz cu una dintre sintaxele: U=ones(n)
U=ones(m,n) U=ones(size(A))
unde m i n sunt scalari, iar A este matrice. Dac funcia ones este apelat cu un singur argument
scalar, matricea generat este o matrice ptrat avnd dimensiunea argumentului. Apelat cu dou
argumente scalare (m,n), matricea generat are m linii i n coloane. Dac funcia ones are ca argument
o matrice A, matricea generat este o matrice unitate de aceleai dimensiuni cu matricea A.
Exemplul 19. S se genereze o matrice unitate cu dimensiunea matrice unitate cu dimensiunea 2x3. Cu
secvena:
Al=ones(2) A2=ones(2,3)
Exemplul 20. Fie matricea: A = [1 4 8;0 2 3] .
S se genereze o matrice unitate de aceleai dimensiuni cu matricea A.
2.3. Matricea zero
Matricea zero este o matrice cu toate elementele zero:
0 0 ... 0
0 0 ... 0
... ... ... ...
0 0 ... 0
O
(
(
(
=
(
(


CURS 2

21

i poate fi generat cu funcia zeros, care se apeleaz cu una dintre sintaxele:
O= zeros(n) O= zeros(m,n) O= zeros(size(A))
unde m i n sunt scalari, iar A este matrice. Dac funcia zeros este apelat cu un singur argument
scalar, matricea generat este o matrice ptrat avnd dimensiunea argumentului. Apelat cu dou
argumente scalare (m,n), matricea generat are m linii si n coloane. Dac funcia zeros are ea argument
o matrice A, matricea generat este o matrice zero de aceleai dimensiuni-cu matricea A.
2.4. Matricea identitate
Matricea identitate este o matrice care are elementele de pe diagonala principal egale cu unu, iar toate
celelalte egale cu zero:
1 0 ... 0
0 1 ... 0
... ... ... ...
0 0 ... 1
I
(
(
(
=
(
(


Se genereaz cu funcia eye, care se apeleaz cu una dintre sintaxele: I= eye(n); I= eye(m.n)
I= eye(size(A))
unde m i n sunt scalari, iar A este matrice. Dac funcia eye este apelat cu un singur argument scalar,
matricea generat este o matrice ptrat avnd dimensiunea argumentului. Apelat cu dou argumente
scalare (m,n), matricea generat are m linii si n coloane. Dac funcia eye are ca argument o matrice A,
matricea generat este o matrice identitate de aceleai dimensiuni cu matricea A.
Exemplul 21. S se genereze o matrice identitate cu dimensiunea 2x2 i o matrice identitate cu
dimensiunea 2x3. S se genereze o matrice identitate de aceleai dimensiuni cu matricea A: A=[l 3 9;
5 7 2];
2.5. Matricea aleatoare
Generarea matricelor cu numere aleatoare se poate face cu:
funcia rand pentru numere aleatoare cu distribuie uniform n intervalul (0.0, 1.0);
CURS 2

22

funcia randn pentru numere aleatoare cu distribuie normal (Gaussian), de medie zero i varian
unu. Sintaxele pentru generarea matricelor cu numere aleatoare sunt:
Ru=rand(n) Rn=randn(n)
Ru=rand(m,n) Rn=randn(m,n)
Ru=rand(size(A)) Rn=randn(size(A))
unde m i n sunt scalari, iar A este matrice. Dac funciile rand i randn sunt apelate cu un singur
argument scalar, matricea generat este o matrice ptrat avnd dimensiunea argumentului. Apelat cu
dou argumente scalare (m, n), matricea generat are m linii si n coloane. Dac funciile rand i randn
au ca argument o matrice A, matricea generat este o matrice aleatoare de aceleai dimensiuni cu
matricea A.
Pentru simularea experienelor care comport aceleai condiii se genereaz serii de numere aleatoare la
care se controleaz un parametru de iniializare al generatorului, seed. rand('seed') sau randn('seed') -
retumeaz valoarea curent a numrului seed"; rand('seed',n) sau randn('seed',n) - seteaz numrul
seed" la valoarea n.
Exemplul 22. S se genereze o matrice aleatoare cu dimensiunea 2x2 i o matrice aleatoare cu
dimensiunea 2x3 cu elementele distribuite uniform si normal. Cu secvena:
Rlu=rand(2); Rln=rand-(2); R2u=rand(2,3);R2n=randn(2,3)

2.6. Generarea unei reele (mesh)
Funcia meshgrid transform domeniul specificat prin vectorii x i y n tablourile X i Y care pot fi
folosite att pentru evaluarea funciilor de dou variabile, ct i pentru reprezentri 3D de tipul mesh
sau surface. Se apeleaz cu una dintre sintaxele:
[X, Y]=meshgrid(x, y) [X, Y]=meshgrid(x)
i returneaz datele n tablourile X si Y, care sunt sunt copii ale vectorului x si ale vectorului y. Cu alte
cuvinte, funcia meshgrid returneaz n tablourile X i Y perechile de coordonate ale tuturor punctelor
CURS 2

23

din domeniul definit de vectori x i y.
Exemplul 23. S se genereze tablourile X i Y pentru domeniul: 2 2, 2 3 x y cu pasul 2 pe
axa Ox i pasul 1 pe Oy. ([X,Y]=meshgrid(-2:2:2,-2:3))

Teme:
1) Se vor rula toae instruciunile i exemplele din cadrul cursului.
2) 1) Fie matricea:
4
2
1 7 7
1 2 5
2 5 0
A

(
(
=
(
(




Sa se scrie un program Matlab care realizeaza:
a) introducerea matricei A;
b) calculul matricei B astfel incat sa fie selectate coloanele 1 si 2, liniile 2 si 3 din matricea A.
c) calculul transpusei matricei B.
d) calculul determinantului matricei B.
e) calculul inversei matricei B.
f) calculul rangului matricei B.
g) calculul patratului matricei B.

Vous aimerez peut-être aussi