Post by StefanoPer piacere qualcuno mi dica come si calcola la pseudoinversa di una matrice
A.
(quando questo è fattibile "a mano"....)
Ricordo che cos'è la pseudoinversa di A: è l'unica matrice A^+ tale che
A*A^+*A=A, A^+*A*A^+=A^+
Se A è mxn, di rango k, una decomposizione a rango pieno di A è
una scrittura di A come A=BC, dove B è mxk e C è kxn.
Ci sono vari modi di procurarsi una decomposizione
a rango pieno di A: per esempio la QR oppure la LU (con
eventuali scambi di righe).
Quando una matrice ha rango massimo, come la B e la C di una
tale decomposizione, la pseudoinversa si calcola con una normale
inversa.
Prendiamo la B, per la C si fa in modo analogo. Siccome B ha rango
uguale al numero di colonne, B^T*B è invertibile (il rango di B^T*B è
uguale al rango di B). La pseudoinversa di B è allora (B^T*B)^-1*B^T.
Lo è perché soddisfa le richieste per chiamarsi tale.
Con B^T indico la trasposta di B, con ^-1 l'inversa e, per
evitare confusioni, * è il prodotto di matrici. Se le matrici
hanno coefficienti complessi, invece della trasposta devi usare
la trasposta hermitiana.
In definitiva, la pseudoinversa di A è
A^+ = C^T*(C*C^T)^-1*(B^T*B)^-1*B^T
Ciao
Enrico