Come calcolare la matrice inversa su Octave
In questa lezione ti spiego come si calcola la matrice inversa di una matrice quadrata o rettangolare su Octave.
Cos'è la matrice inversa? Una matrice M è invertibile se esiste una matrice inversa M-1 tale che il prodotto tra le due matrici restituisce una matrice identità, ossia una matrice con 1 sulla diagonale principale e 0 su tutti gli altri elementi. Ad esempio $$ M \cdot M^{-1} = I $$
Ti faccio un esempio pratico
Definisci una matrice quadrata 2x2
>> M=[1 2;3 4]
M =
1 2
3 4
Per calcolare la matrice inversa di M usa la funzione inv()
>> inv(M)
ans =
-2.00000 1.00000
1.50000 -0.50000
Ora moltiplica la matrice M con la sua inversa inv(M)
Il risultato è una matrice identità
>> M*inv(M)
ans =
1.00000 0.00000
0.00000 1.00000
La funzione inv() puoi usarla solo se la matrice M è una matrice quadrata.
Nota. Non tutte le matrici quadrate sono invertibili. Ad esempio, le matrici quadrate con determinante nullo (dette matrici singolari) non hanno una matrice inversa. Quando non esiste una matrice inversa Octave visualizza un messaggio di warning "Matrix is singular to working precision". Per evitare di sbagliarti ti consiglio sempre di verificare che il prodotto M*inv(M) sia una matrice identità.
E per le matrici rettangolari?
Puoi calcolare la matrice inversa anche di una matrice rettangolare.
In questo caso però devi usare la funzione pseudo inverse pinv()
Ad esempio, definisci una matrice rettangolare 2x3 con due righe e tre colonne
>> M2=[1 2 3 ; 4 5 6]
M2 =
1 2 3
4 5 6
Ora calcola la matrice inversa della matrice rettangolare usando la funzione pinv()
>> pinv(M2)
ans =
-0.94444 0.44444
-0.11111 0.11111
0.72222 -0.22222
Se moltiplichi la matrice rettangolare M2 per la sua inversa inv(M2) ottieni una matrice identità.
Quindi, il risultato è corretto.
>> M2*pinv(M2)
ans =
1.00000 -0.00000
0.00000 1.00000
In questo modo puoi trovare le matrici inverse anche partendo dalle matrici rettangolari.
Anche in questo caso, ti consiglio sempre di verificare che il prodotto M*pinv(M) sia la matrice identità.
Nota. La funzione pinv() puoi usarla anche per calcolare la matrice inversa di una matrice quadrata al posto della funzione inv(). Il risultato è sempre lo stesso. Viceversa, non puoi usare la funzione inv() sulle matrici rettangolari. Puoi usare la funzione inv() solo sulle matrici quadrate.
Se questa lezione di StemKB su Octave ti ha aiutato, continua a seguirci.