lettura normale

La matrice inversa su Matlab

In questa lezione ti spiego come calcolare la matrice inversa di una matrice quadrata o rettangolare su Matlab.

Cos'è la matrice inversa? Una matrice M è detta invertibile se esiste un'altra matrice detta matrice inversa M-1 tale che il prodotto delle due matrici è una matrice identità, ossia una matrice che ha dei valori 1 sulla diagonale principale e 0 altrove. Ad esempio $$ M \cdot M^{-1} = I $$

Ti faccio un esempio pratico

Definisci una matrice quadrata con due righe e due colonne.

>> M=[1 2;3 4]
M =
1 2
3 4

Calcola la matrice inversa M-1 della matrice M usando la funzione inv()

>> inv(M)
ans =
-2.00000 1.00000
1.50000 -0.50000

Adesso moltiplica la matrice M con la sua inversa inv(M)

Il risultato finale è una matrice identità

>> M*inv(M)
ans =
1.00000 0.00000
0.00000 1.00000

Puoi usare la funzione inv() per calcolare la matrice inversa solo se la matrice M è una matrice quadrata.

Nota. Le matrici quadrate non sono tutte invertibili. Ad esempio, se una matrice quadrata ha il determinante uguale a zero allora non è invertibile e non ha una matrice inversa. Quando una matrice non è invertibile la funzione inv() restituisce un messaggio di errore "Warning: matrix is singular to working precision". Dopo il calcolo della matrice inversa verifica che il prodotto M*inv(M) sia effettivamente una matrice identità.

Come si calcola la matrice inversa delle matrici rettangolari?

In Matlab puoi calcolare la matrice inversa anche di una matrice rettangolare.

In questo caso devi usare la funzione pseudo inverse pinv()

Ad esempio, definisci una matrice rettangolare M2

>> M2=[1 2 3 ; 4 5 6]
M2 =
1 2 3
4 5 6

Si tratta di una matrice 2x3 con due righe e tre colonne.

Adesso calcola la matrice inversa della matrice M2 tramite la funzione pinv()

>> pinv(M2)
ans =
-0.94444 0.44444
-0.11111 0.11111
0.72222 -0.22222

Matlab ti restituisce la matrice inversa di M2.

Per essere sicuro che sia la matrice inversa, moltiplica la matrice rettangolare M2 per la sua matrice inversa pinv(M2).

>> M2*pinv(M2)
ans =
1.00000 -0.00000
0.00000 1.00000

Il risultato del prodotto M*pinv(M2) è una matrice identità.

Quindi, il risultato è corretto.

Nota. In Matlab puoi usare la funzione pinv() per calcolare la matrice inversa sia delle matrici quadrate che delle matrici rettangolari. Quindi, puoi usare pinv() al posto della funzione inv() se la matrice è quadrata. Il risultato è sempre lo stesso.
la differenza tra le funzioni inv() e pinv()
Viceversa, puoi usare la funzione inv() solo sulle matrici quadrate.




Se qualcosa non ti è chiaro, scrivi la tua domanda nei commenti.




FacebookTwitterLinkedinLinkedin