La pseudoinversa di Moore-Penrose è una generalizzazione della matrice inversa applicabile anche a matrici rettangolari o singolari. Si indica con A^+ e permette di scrivere soluzioni compatte per problemi di minimi quadrati, sistemi sottodeterminati e proiezioni ortogonali.
Se A è quadrata e invertibile, la pseudoinversa coincide con l’inversa ordinaria:
La sua utilità nasce quando questa inversa non esiste.
1. Definizione di Moore-Penrose
La matrice A^+ è l’unica matrice che soddisfa le quattro condizioni di Moore-Penrose:
Le prime due condizioni esprimono compatibilità algebrica con A; le ultime due impongono simmetria alle proiezioni associate. Per matrici complesse si usa la trasposta coniugata al posto della trasposta.
2. Calcolo tramite SVD
Il modo più stabile e generale per calcolare la pseudoinversa usa la scomposizione ai valori singolari. Se:
è una decomposizione SVD, allora
dove \Sigma^+ si ottiene invertendo i valori singolari non nulli e trasponendo la matrice diagonale rettangolare. Se:
allora:
Il rango di A è il numero di valori singolari non nulli. Valori singolari molto piccoli indicano direzioni quasi non identificabili e rendono la pseudoinversa numericamente sensibile.
3. Matrici a rango pieno
Se A ha più righe che colonne e colonne linearmente indipendenti, allora:
Questa è la forma classica dei minimi quadrati. Se invece A ha più colonne che righe e righe indipendenti, allora:
Queste formule sono utili concettualmente, ma in calcolo numerico spesso si preferiscono SVD o fattorizzazione QR per ragioni di stabilità.
4. Sistemi sovradeterminati
Per un sistema:
con più equazioni che incognite, può non esistere una soluzione esatta. La pseudoinversa fornisce la soluzione ai minimi quadrati:
Questa soluzione minimizza:
In regressione lineare, se la matrice del disegno è X, la stima ai minimi quadrati può essere scritta:
Quando X ha colonne dipendenti, la pseudoinversa seleziona una delle soluzioni possibili secondo un criterio di norma minima.
5. Sistemi sottodeterminati
Se il sistema ha meno equazioni che incognite, possono esistere infinite soluzioni. La pseudoinversa restituisce la soluzione di norma euclidea minima:
con:
Questo è importante in problemi inversi, controllo, robotica e ottimizzazione, dove tra molte soluzioni compatibili si preferisce quella meno energetica, meno ampia o più regolare.
6. Proiezioni
Le matrici:
e:
sono proiezioni ortogonali. In particolare, AA^+ proietta sullo spazio colonna di A, mentre A^+A proietta sullo spazio riga.
Questa interpretazione geometrica chiarisce perché la pseudoinversa è naturale nei minimi quadrati: quando b non appartiene allo spazio colonna di A, si proietta b sul punto più vicino raggiungibile da Ax.
7. Problemi numerici e soglie
In pratica, valori singolari molto piccoli non vengono sempre invertiti. Si introduce una soglia: se \sigma_i è troppo vicino a zero, si tratta come nullo.
Questo evita amplificazione numerica:
diventa enorme quando \sigma_i è piccolo. La scelta della soglia equivale a una forma di regolarizzazione e può influenzare molto il risultato.
In problemi mal condizionati si usano anche regolarizzazione di Tikhonov, ridge regression o truncation della SVD.
8. Applicazioni
La pseudoinversa compare in:
- regressione lineare e stima;
- identificazione di sistemi;
- robotica e cinematica inversa;
- ricostruzione di segnali;
- controllo;
- problemi inversi;
- riduzione dimensionale;
- soluzioni di norma minima;
- proiezioni in algebra lineare numerica.
Il legame con autovalori, autovettori e SVD la rende anche uno strumento concettuale per capire rango, direzioni informative e instabilità.
9. Errori comuni
Il primo errore è trattare A^+ come se fosse sempre un’inversa ordinaria. In generale:
Sono identità solo in casi particolari.
Il secondo errore è ignorare il condizionamento. Una pseudoinversa calcolata formalmente può produrre risultati instabili se la matrice ha valori singolari molto piccoli.
Il terzo errore è usare le formule normali (A^TA)^{-1}A^T quando A^TA è mal condizionata o singolare.
10. Uso operativo
La pseudoinversa è il linguaggio compatto per risolvere sistemi lineari non ideali: troppi vincoli, pochi vincoli, dipendenze lineari o rumore. In applicazioni numeriche va però calcolata con attenzione, preferendo SVD o metodi stabili e dichiarando eventuali soglie sui valori singolari.