Základné vlastnosti maticových funkcií sú:
Prehľad týchto funkcií zobrazí príkaz help matfun.
Funkcia | Opis |
---|---|
det | determinant matice |
null | nulové zobrazenie matice |
orth | ortogonalizacia matice |
rank | počet lineárne nezávislých riadkov |
trace | suma diagonálnych prvkov matice |
>> A = [4 -2 1;-1 5 6;2 0 5]; det(A) ans = 56
>> B = [1 0 2;2 3 4;4 6 8]; trace(B) ans = 12
>> rank(B) ans = 2
Príkazom null(A) je možné získať takú maticu Q, pre ktorú platí:
Ak taká matica Q neexistuje, funkcia vráti [].
Pod pojmom ortogonalizácia matice A t.j. použitím príkazu orth(A) rozumieme získanie takej matice Q, pre ktorú platí:
>> A = [1 -2;-3 6];
>> Q = null(A)
Q =
0.8944
0.4472
% Spätná kontrola
>> Q'*Q
ans =
1.0000
>> A*Q
ans =
0
0
>> B = [1 2;3 5]; >> Q = null(B) Q = Empty matrix: 2-by-0
>> A = [1 2 -3;3 5 2;4 6 1];
>> Q = orth(A)
Q =
-0.1806 0.9505 -0.2527
-0.6298 -0.3091 -0.7126
-0.7555 0.0305 0.6545
% Spätná kontrola
>> Q'*Q
ans =
1.0000 0.0000 0.0000
0.0000 1.0000 0.0000
0.0000 0.0000 1.0000
>> B = [4 2 -3;1 -2 2;2 -4 4];
>> Q = orth(B)
Q =
0.4939 0.8695
-0.3889 0.2209
-0.7777 0.4417
% Spätná kontrola
>> Q'*Q
ans =
1.0000 0.0000
0.0000 1.0000
Na riešenie soustavy lineárnych rovníc, ktorá je prevedená do maticového tvaru (Ax = b), môžeme použiť okrem operátora \ aj inverznú maticu.
Príkaz | Opis |
---|---|
inv | inverzná matica |
pinv | pseudoinverzná matica |
Príkaz Y = pinv(A) vracia maticu, pre ktorú platí:
>> A = [1 5 2;4 -2 1;-3 3 2];
>> B = inv(A)
B =
0.1400 0.0800 -0.1800
0.2200 -0.1600 -0.1400
-0.1200 0.3600 0.4400
% Spätná kontrola
>> A*B
ans =
1.0000 0.0000 0
-0.0000 1.0000 0.0000
0.0000 -0.0000 1.0000
>> C = [1 0 -0.04;0 1 0.2];
>> B = pinv(C)
B =
0.9985 0.0077
0.0077 0.9616
-0.0384 0.1920
% Spätná kontrola
>> C*B*C
ans =
1.0000 0.0000 -0.0400
0.0000 1.0000 0.2000
>> B*C*B
ans =
0.9985 0.0077
0.0077 0.9616
-0.0384 0.1920
>> C*B
ans =
1.0000 0.0000
0.0000 1.0000
>> A = [5 8 9; 1 -2 3;2 -5 3]; >> b = [48;6;1]; >> x = inv(A)*b x = 1.0000 2.0000 3.0000
Príkaz | Opis |
---|---|
eig | rozklad matice na vlastné hodnoty a vlastné vektory |
svd | singulárny rozklad |
>> A = [1 5 2;4 -2 1;-3 3 2]; >> eig(A) ans = -5.0766 3.0383 + 0.7859i 3.0383 - 0.7859i
>> [vektor, hodnota] = eig(A) vektor = 0.4445 0.6998 0.6998 -0.7414 0.4647 - 0.0120i 0.4647 + 0.0120i 0.5027 -0.4485 + 0.3049i -0.4485 - 0.3049i hodnota = -5.0766 0 0 0 3.0383 + 0.7859i 0 0 0 3.0383 - 0.7859i
Na singulárne hodnoty je možné rozložiť maticu A pomocou príkazu [U,S,V] = svd(A), kde S je diagonálna matica a U, V sú také matice, aby bol splnený vzťah U*S*V' = A.
>> A = [1 5 2;4 -2 1;-3 3 2];
>> [U,S,V] = svd(A)
U =
0.6265 0.6963 -0.3503
-0.4509 0.6904 0.5657
0.6357 -0.1965 0.7465
S =
7.0082 0 0
0 4.6389 0
0 0 1.5380
V =
-0.4401 0.8724 -0.2125
0.8478 0.3258 -0.4185
0.2959 0.3643 0.8830
% Spätná kontrola
>> U*S*V'
ans =
1.0000 5.0000 2.0000
4.0000 -2.0000 1.0000
-3.0000 3.0000 2.0000
>> svd(A) ans = 7.0082 4.6389 1.5380