Decomposizione a Valori Singolari (SVD)

Chicco_Stat_1
Salve a tutti signori..un dubbio attanaglia la mia mente...
parliamo di decomposizioni di matrici, ed in particolare di decomposizione a valori singolari...
Su uno dei testi su cui sto studiando viene specificato che la matrice $Sigma$ dei k valori singolari (radici degli autovalori diversi da zero comuni alle matrici $A A^H$ e $A^HA$) debba contenerli in ordine decrescente: $Sigma=psdiag(sigma_1,sigma_2,...,sigma_k,0,...,0)$ con $sigma_1>=sigma_2>=...>=sigma_k$.

Provando in questo modo le decomposizioni tornano..ma in un caso facendo la verifica mi trovo la matrice di partenza con le righe permutate...nella fattispecie, la decomposizione sia della forma $A=U*Sigma*V^H$ con $A in CC^(mxxn)$, $U$ matrice unitaria $mxxm$ avente come colonne gli autovettori normalizzati di $A A^T$, $V$ unitaria $nxxn$ avente come colonne gli autovettori normalizzati di $A^T A$, e con $V^H$ indico la trasposta coniugata di $V$

nel nostro caso la matrice è reale, quindi l'operazione di trasposta coniugata coincide con la usuale trasposizione

$A=[(1,2,0),(2,1,0)]$
$A A^T = [(5,4),(4,5)]$ con autovalori $lambda_1=9,lambda_2=1$
$A^T A = [(5,4,0),(4,5,0),(0,0,0)]$ con autovalori $lambda_1=9,lambda_2=1,lambda_3=0$

quindi $Sigma=[(3,0,0),(0,1,0)]$
$U=[(1/sqrt(2),1/sqrt(2)),(1/sqrt(2),-1/sqrt(2))]$
$V=[(1/sqrt(2),1/sqrt(2),0),(1/sqrt(2),-1/sqrt(2),0),(0,0,1)]=V^H$

s.e.o.

ora, la verifica che effettivamente valga $A=USigmaV^T$ mi porta a

$[(1/sqrt(2),1/sqrt(2)),(1/sqrt(2),-1/sqrt(2))][(3,0,0),(0,1,0)][(1/sqrt(2),1/sqrt(2),0),(1/sqrt(2),-1/sqrt(2),0),(0,0,1)]=[(2,1,0),(1,2,0)]

insomma, la matrice $A$ di partenza con le righe permutate....
qualcuno riesce a darmi una mano? io ero rimasto al fatto che $Sigma$ fosse univocamente determinata per ogni matrice $A$..nelle soluzioni della dispensa viene invece presentata con gli autovalori in ordine CRESCENTE...e i conti a quel punto tornano..ma il teorema.....insomma... help!!

Risposte
nirvana2
Beh c'è un piccolo errore nella seconda colonna della matrice $U$.
$U=[(1/sqrt(2),-1/sqrt(2)),(1/sqrt(2),1/sqrt(2))]$

Chicco_Stat_1
dopo vari calcoli e ricalcoli ci eravamo arrivati...ma quella differenza di segno dipende unicamente da come scegli di risolvere il sistemino per trovare l'autovalore associato ad 1...pensavamo non cambiasse niente, invece permuta la matrice la scelta dell'ordine di risoluzione...suppongo sia per via del fatto che scegli una base orientata diversamente.
Grazie comunque! :)

nirvana2
"Chicco_Stat_":
dopo vari calcoli e ricalcoli ci eravamo arrivati...ma quella differenza di segno dipende unicamente da come scegli di risolvere il sistemino per trovare l'autovalore associato ad 1...pensavamo non cambiasse niente, invece permuta la matrice la scelta dell'ordine di risoluzione...suppongo sia per via del fatto che scegli una base orientata diversamente.
Grazie comunque! :)



Tengo a precisare che non ho tirato ad indovinare mettendo un segno sopra o sotto...Ho applicato semplicemente la formula...
$1/sqrt( lambda_i )*A*v_i$ dove $v_i$ è l'autovettore normato...

Se applichi correttamente questa formula trovi le colonne della matrice $U$ che ti ho scritto nel post sopra.

Ciao.

Chicco_Stat_1
grazie mille davvero!
uhmmm domanda, la formuletta inversa? per trovare le colonne di $V$ partendo da $U$?

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.