Decomposizione SVD

zoritativo
Ciao ragazzi,
volevo chiedervi un aiuto.
Ho affrontato il tema della decomposizione QR e SVD.
Mentre per la prima non ho avuto problemi in fase di esercizio, ne ho invece con la seconda.
Devo scomporre una qualsiasi 2x2 a piacimento, ma ho problemi nel formulare un algoritmo dalla teoria.

$A=[[1,2],[0,3]]$
Gli autovalori sono ovviamente $lambda_1=1, lambda_2=3$
Autovettori: $(1,0)^T$ , $(1,1)^T$

Il prossimo passo sarebbe applicare: $[A][A]^T{v}=lambda^2{v}$ ??

poi da qui dovrei trovare quindi la matrice diagonale centrale, nella decomposizione?Ho un pò di confusione, potreste indirizzarmi verso un algoritmo?

vi ringrazio,
Luca

Risposte
DavideGenova1
Esatto: quello è il primo passo. Puoi anche partire calcolando autovettori e autovalori di \(A^\text{T}A\) con \(A\in M_{m,n}(\mathbb{R})\), ché è lo stesso.
Questi autovalori sono necessariemente reali e non negativi, perché di una matrice simmetrica semidefinita positiva \(A^\text{T}A\) o \(AA^\text{T}\), e vanno sulla diagonale della matrice con i valori singolari \(\Sigma\in M_{m,n}(\mathbb{R})\) tale che \(A=U\Sigma V^\text{T}\) con \(U\in \text{O}(m)\) (cioè ortogonale) e \(V\in \text{O}(n)\).
Dopo aver calcolato gli autovettori normalizzati \(\mathbf{u}_i\) e gli autovalori tali che \(A^\text{T}A\mathbf{u}_i=\sigma_i^2\mathbf{u}_i\) (uso il sigma per non confonderci con gli autovalori di \(A\)), si dispongono le loro radici \(\sigma_i\) sulla diagonale principale della sottomatrice diagonale \(r×r\) (chiamo \(r\) il rango di \(A\)) non nulla a "nord-ovest" in \(\Sigma\) e gli \(\mathbf{u}_i\) in una matrice \(m×m\) che sarà ortogonale. A parte "dove metti" gli autovalori, il procedimento è simile alla diagonalizzazione.
A questo punto* \(\mathbf{v}_j=\|A^\text{T}\mathbf{u}_j\|^{-1}A^\text{T}\mathbf{u}_j=\sigma_j^{-1}A^\text{T}\mathbf{u}_j\) è un autovettore normalizzato di \(A^\text{T}A\) corrispondente all'autovalore \(\sigma_j^2\) e, se fosse \(n>m\), dovresti concludere calcolando gli altri autovettori normalizzati \(\mathbf{v}_i\) di \(A^\text{T}A\), tutti necessariamente corrispondenti all'autovalore 0 (perché \(r(A^\text{T}A)=r(AA^\text{T})=r(A)\)), che è rappresentato da ogni altro coefficiente sulla diagonale di \(\Sigma\). Tutti questi \(\mathbf{v}_i\), che sono in tutto \(n\), vanno, nell'ordine corrispondente, in \(V\), che trasponi nello scrivere la SVD.
Nel caso della tua matrice riporto solo la decomposizione che trovo perché mi vengono un sacco di radici:\[A=U\Sigma V^\text{T}=\]\[\begin{pmatrix}\frac{-1+\sqrt{10}}{\sqrt{20-2\sqrt{10}}}&\frac{-1-\sqrt{10}}{\sqrt{20+2\sqrt{10}}}\\\frac{3}{\sqrt{20-2\sqrt{10}}}&\frac{3}{\sqrt{20+2\sqrt{10}}}\end{pmatrix}\begin{pmatrix}\sqrt{7+2\sqrt{10}}&0\\0&\sqrt{7-2\sqrt{10}}\end{pmatrix}\begin{pmatrix}\frac{-3+\sqrt{10}}{\sqrt{20-6\sqrt{10}}}&\frac{1}{\sqrt{20-6\sqrt{10}}}\\\frac{-3-\sqrt{10}}{\sqrt{20+6\sqrt{10}}}&\frac{1}{\sqrt{20+6\sqrt{10}}}\end{pmatrix}\]
\(\Sigma\) è in questo caso una matrice diagonale, ma ovviamente non è sempre così.
Spero di non aver detto scemenze e confido di essere corretto se l'ho fatto...
Ciao!

*Saprai che \(\|A^\text{T}\mathbf{u}_j\|=\sigma_j\) perché \(\|A^\text{T}\mathbf{u}_j\|^2=\mathbf{u}_j^\text{T}AA^\text{T}\mathbf{u}_j=\sigma_j^2\|\mathbf{u}_j\|^2\).

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