Matrixrekening: Matrices in MATLAB
Rijreductie en determinant
MATLAB biedt rij- en kolomoperaties om veegoperaties in matrices numeriek uit te rekenen, maar voor het berekenen van de rijgereduceerde trapvorm (row-reduced echelon form) van een matrix is er het commando rref
. Hiermee kun je ook de methode van rijreductie voor het berekenen van een inverse matrix uitvoeren.
Inverse van een matrix berekenen
>> A = [3 1 -4; -1 0 2; 1 1 -1] % inverteerbare matrix
A =
3 1 -4
-1 0 2
1 1 -1
>> AI = [A eye(3)] % gerande matrix
AI =
3 1 -4 1 0 0
-1 0 2 0 1 0
1 1 -1 0 0 1
>> rref(AI) % rijgereduceerde trapvorm
ans =
1 0 0 2 3 -2
0 1 0 -1 -1 2
0 0 1 1 2 -1
>> ans(:, 4:6) % deelmatrix die gelijk is aan inverse van A
ans =
2 3 -2
-1 -1 2
1 2 -1
>> A^(-1)
ans =
2.0000 3.0000 -2.0000
-1.0000 -1.0000 2.0000
1.0000 2.0000 -1.0000
De determinant van de matrix uit bovenstaand voorbeeld kan berekend worden met het commando det
en de uitkomst toont aan dat de matrix inverteerbaar is. We geven hieronder ook een voorbeeld van een niet-inverteerbare matrix omdat de determinant gelijk aan 0 is en de gereduceerde trapvorm ongelijk is aan een identiteitsmatrix. Als je toch probeert de inverse te bereken, krijg je overigens wel een resultaat met bijpassende waarschuwing. Wees bij berekening ook altijd op je hoede voor numerieke afrondingsfouten.
Determinant van een matrix
>> A % inverteerbare matrix
A =
3 1 -4
-1 0 2
1 1 -1
>> det(A) % determinant van A
ans =
-1.0000
>> B = [1 -2 -2; 1 14 14; -4 -24 -24] % niet-inverteerbare matrix
B =
1 -2 -2
1 14 14
-4 -24 -24
>> det(B) % determinant van B
ans =
0
>> rank(B) % rang van B
ans =
2
>> rref(B) % rijgereduceerde trapvorm vsn B
ans =
1 0 0
0 1 1
0 0 0
>> B^(-1)
Warning: Matrix is singular to working precision.
> In matlab.internal.math.mpower.viaMtimes (line 35)
ans =
Inf Inf Inf
Inf Inf Inf
Inf Inf Inf