Documente Academic
Documente Profesional
Documente Cultură
MATRICI ÎN MATLAB
3.1 Matrici și elementele lor
9 8 7
Exemplu: matricea A 6 5 4 se introduce astfel ȋn MATLAB:
3 2 1
>> size(A)
ans =
3 3
>> A(2,3)
ans =
4
46
Pentru a accesa o linie ȋntreagǎ folosim operatorul coloanǎ. Comanda
A(2,:) ȋnseamnǎ “linia a doua fiecare coloanǎ”a matricii A:
>> A(2,:)
ans =
6 5 4
>> A(:,2)
ans =
8
5
2
>> A([1,3],[2,3])
ans =
8 7
2 1
Putem modifica valoarea oricǎrui element al matricii A:
>> A(3,3)=10
A=
9 8 7
6 5 4
3 2 10
>> A(1,:)=15:17
47
A=
15 16 17
6 5 4
3 2 10
>> A(:,2)=20
A=
15 20 17
6 20 4
3 20 10
>> A(5,5)=100
A=
15 20 17 0 0
6 20 4 0 0
3 20 10 0 0
0 0 0 0 0
0 0 0 0 100
>> size(A)
ans =
5 5
48
A=
15 20 17
6 20 4
3 20 10
0 0 0
0 0 0
>> A(4:5,:)=[] % sterge liniile 4 si 5
A=
15 20 17
6 20 4
3 20 10
49
eye(n) genereazǎ matricea identitate, ale cǎrei elemente de
pe diagonala principalǎ sunt egale cu 1, restul fiind 0
rand(n) genereazǎ o matrice pǎtratǎ (n x n) sau de ordinul
rand(m,n) (m x n) cu elemente cu valori aleatoare, cu
distribuție uniformǎ ȋn intervalul (0,1)
randn(n) genereazǎ o matrice pǎtratǎ (n x n) sau de ordinul
randn(m,n) (m x n) cu elemente cu valori aleatoare, cu
distribuție normalǎ (gaussianǎ) ȋn intervalul (0,1)
A.’ transpusa matricii A
A’ transpusa conjugatǎ a matricii A
50
3.3 Operații aritmetice simple
>>C=A+B
>>C=A-B
M+N+P=M+(N+P)=(M+N)+P
M-N+P=(M-N)+P=(M+P)-N
>>c*A
51
5 10 15
D și scalarii f = 1 și g = 0.2.
20 25 30
52
10 9 8
8 7 6
6 5 4
>> A+B+C
ans =
16 18 20
23 25 27
30 32 34
>> A+B-C
ans =
4 0 -4
-7 -11 -15
-18 -22 -26
>> A+f
ans =
2 2 2
3 3 3
4 4 4
>> B*g
ans =
1.8000 1.6000 1.4000
1.2000 1.0000 0.8000
0.6000 0.4000 0.2000
>> C-D
??? Error using ==> minus
Matrix dimensions must agree.
Înmulțirea matricilor
53
Înmulțirea la stȃnga a matricii A se poate efectua numai cu un vector
y de dimensiune (1 x m) (vector linie).
Înmulțirea a douǎ matrici A și B se poate face numai ȋn cazul ȋn care
A are dimensiunea (m x n) iar B are dimensiunea (n x p), rezultȃnd o
matrice de dimensiunea (m x p). În oricare altǎ situație se va obține un
mesaj de eroare.
Exemplu: fie vectorii x = [1;2;3] și y = [4 5 6]. Efectuǎm urmǎtoarele
calcule ȋn MATLAB:
a). A*x
b). y*B
c). A*B
d). A*B*C
e). A*y
f). x*B
54
621 756 891
1242 1512 1782
1863 2268 2673
>> A*y
??? Error using ==> mtimes
Inner matrix dimensions must agree.
>> x*B
??? Error using ==> mtimes
Inner matrix dimensions must agree.
>> A*y.’
Ans =
15
30
45
>> x.’*B
ans =
30 24 18
A · (B + C) = A · B + A · C
(A + B) · C = A · C + B · C
(A · B) · C = A · (B · C)
(m + n) · A = m · A + n · A
m· (A + B) = m · A + m · B
m · (n · A) = (m · n) · A
(m · A) · B = m · (A · B) = A · (m · B)
55
Înmulțirea matricilor nu este asociativǎ; adicǎ A·B ≠ B·A, nici ȋn
cazul matricilor pǎtrate. Posibilele excepții sunt cazuri extrem de rar
ȋntȃlnite ȋn practicǎ.
>> p1=-3;
>> M2=M^p1
M2 =
0.0364 0.0157 -0.0321
-0.1280 -0.1116 0.1689
0.1200 0.1092 -0.1624
>> % verificarea rezultatului
>> M3=inv(M)*inv(M)*inv(M)
M3 =
0.0364 0.0157 -0.0321
-0.1280 -0.1116 0.1689
0.1200 0.1092 -0.1624
56
Tablourile sunt tot vectori sau matrici, definite ȋn același mod, cu
singura deosebire cǎ operațiile aritmetice sunt efectuate element-cu-
element. Adunarea și scǎderea sunt similare pentru matrici și tablouri,
dar operațiile muliplicative sunt diferite (cu mențiunea cǎ se pot
realiza doar ȋntre tablouri de aceleași dimensiuni).
Lista operatorilor pentru tablouri include un punct ȋnaintea operației
respective (punctul zecimal, „dot”), astfel:
Împǎrțirea la dreapta
R = A / B ≡ A * B-1
57
1.5000 -0.5000
0.5000 0.5000
>> % verificare
>> R1=A*B^-1
R1 =
1.5000 -0.5000
0.5000 0.5000
Dacǎ vom considera A și B ca tablouri (au aceleași dimensiuni),
atunci ȋmpǎrțirea la dreapta va conduce la un tablou ale cǎrui
elemente sunt elementele tabloului A ȋmpǎrțite la elementele tabloului
B. Pentru o vizualizare mai bunǎ a rezultatului vom folosi formatul
rațional:
Împǎrțirea la stȃnga
L = A \ B ≡ A-1 * B
>> L=A\B
L=
0 -1
1 2
>> % verificare
>> L1=A^-1*B
L1 =
0 -1
1 2
58
Din nou, dacǎ A și B sunt tablouri rezultǎ un tablou ce conține fiecare
element al tabloului B ȋmpǎrțit la fiecare element al tabloului A:
>> L2=A.\B
L2 =
3 5/3
7/5 9/7
Bazat pe același raționament putem ȋnmulți sau ȋmpǎrți tablouri
unidimensionale sau putem ȋmpǎrți un scalar la un tablou.
Exemplu: fie tabloul unidimensional x = [1 2 3] și scalarul s = 5. Prin
ȋmpǎrțire la dreapta scalarul se ȋmparte la fiecare element al lui x, ȋn
timp ce prin ȋmpǎrțire la stȃnga fiecare element al lui x se ȋmparte la
scalar:
59
>> A^2
ans =
16 24
40 64
>> x.^2
ans =
1 4 9
>> x.^3
ans =
1 8 27
60
>> % transpusa conjugata
>> Atc=A’
Atc =
1 5
2 2 + 1i
3 - 1i 7
61