singular value decomposition

Her kan du stille spørsmål vedrørende problemer og oppgaver i matematikk på høyskolenivå. Alle som har kunnskapen er velkommen med et svar. Men, ikke forvent at admin i matematikk.net er spesielt aktive her.

Moderatorer: Vektormannen, espen180, Aleks855, Solar Plexsus, Gustav, Nebuchadnezzar, Janhaa

Svar
stenvik team
Noether
Noether
Innlegg: 47
Registrert: 29/11-2012 15:39

Gjør oppgave 3 her https://wiki.math.ntnu.no/_media/tma4145/2016h/hw13.pdf

Finner først egenverdiene og de korresponderende egenvektorene til [tex]A^{*}A[/tex]

Dette gir egenverdiene 1 og 0 der multipliciteten til 1 er 2. og de korresponderende egenvektorene er
[tex]\bigl(\begin{smallmatrix} 0\\ 0\\ 1 \end{smallmatrix}\bigr),\bigl(\begin{smallmatrix} 0\\ 1\\ 0 \end{smallmatrix}\bigr),\bigl(\begin{smallmatrix} 1\\ 0\\ 0 \end{smallmatrix}\bigr)[/tex]


Har dermed funnet ut at sigma matrise er [tex]\begin{bmatrix} 1 & 0 & 0\\ 0&1 &0 \\ 0&0 &0 \end{bmatrix}[/tex] og min V matrise er [tex]\begin{bmatrix} 0 & 0 & 1\\ 0&1 &0 \\ 1&0 &0 \end{bmatrix}[/tex]

Dette stemmer overens med løsningforslaget her: https://wiki.math.ntnu.no/_media/tma414 ... 13-sol.pdf

Så skal jeg regne ut U, det er her jeg for problemer

i følge heftet her (side 82) : https://wiki.math.ntnu.no/_media/tma414 ... -3.12a.pdf

Så er den første kolonnen i U lik [tex]Av_{1}[/tex] der [tex]v_{1}[/tex] er egenvektoren korresponderene til den første egenvektoren. Altså den første kolonnen til V.

Jeg regner dermed ut [tex]\begin{bmatrix} 0 & 1 & 0\\ 0&0 &1 \\ 0&0 &0 \end{bmatrix}\begin{bmatrix} 0\\ 0\\ 1\end{bmatrix}[/tex] og for noe annet enn det som står i fasiten.

Jeg vet ikke hva jeg gjør feil, vet noen av dere?
origon

Både [tex]A*A[/tex] og [tex]AA*[/tex] må en regne ut determinanten av.

Du må velge riktig slik at determinanten blir lik på begge sider for [tex]A = U\Sigma V^*[/tex]
origon

origon skrev:Både [tex]A^*A[/tex] og [tex]AA^*[/tex] må en finne egenverdier av.

Du må velge riktig slik at determinanten blir lik på begge sider for [tex]A = U\Sigma V^*[/tex]
stenvik team
Noether
Noether
Innlegg: 47
Registrert: 29/11-2012 15:39

Ja jeg fant ut i ettertid at jeg kan finne kolonnene til U ved å finne egenvektorene til [tex]AA^{*}[/tex], det jeg fortsatt lurer på er hvordan jeg kan finne ut av rekkefølgen til egenvektorene i U matrisen uten prøving og feiling.
Du må velge riktig slik at determinanten blir lik på begge sider for [tex]A=UΣV^{*}[/tex]
Dette forstår ikke jeg

[tex]det(A)=det(U\Sigma V^{*})=det(U)\cdot det(\Sigma)\cdot det(V^{*})=det(U)\cdot 0 \cdot det(V^{*})=0[/tex] så determinanten er 0 uavhengig av hvor jeg plasserer egenvektorkolonnene i matrisene U og V
origon

For å få determinisme pga datamaskin (tenker på matlab), så er det vanlig å sortere etter egenverdiene i ikke voksende orden og ta f.eks de n største egenverdiene som passer.
stenvik team
Noether
Noether
Innlegg: 47
Registrert: 29/11-2012 15:39

så er det vanlig å sortere etter egenverdiene i ikke voksende orden
Den er grei.
og ta f.eks de n største egenverdiene som passer
Her blir jeg forvirret, det virker jo som om det er flere enn n egenverdier, men en nxn matrise A kan jo ikke ha flere enn n egenverdier

Er også fortsatt usikker på hva jeg skal gjøre hvis en egenverdi har multiplicitet høyere enn 1.

For eksempel i oppgaven her fant jeg ut at [tex]AA^{*}[/tex] har to egenverdier 1 og 0 der [tex]\begin{bmatrix} 0\\ 0\\ 1 \end{bmatrix}[/tex] er egenvektoren som tilhører egenverdien 0, mens [tex](\begin{bmatrix} 0\\ 1\\ 0 \end{bmatrix}\begin{bmatrix} 1\\ 0\\ 0 \end{bmatrix})[/tex] tilhører egenverdien 1.

Dermed vet jeg at at [tex]\begin{bmatrix} 0\\ 0\\ 1 \end{bmatrix}[/tex] skal være den siste kolonnen i matrise U siden den tilhører egenverdien 0, det jeg ikke vet er hvordan jeg skal kunne vite hvilken av matrisene [tex](\begin{bmatrix} 0\\ 1\\ 0 \end{bmatrix}\begin{bmatrix} 1\\ 0\\ 0 \end{bmatrix})[/tex] som skal være i første og andre kolonne i U siden de har begge samme egenverdi. (Uten prøving og feiling)

Jeg vet heller ikke hva determinisme på datamaskiner er. Er det kanskje derfor jeg ikke forstår?
origon

I SVD er det flere riktige svar. Med determinisme med en datamaskin, menes at alle kommer frem til riktig svar (ved at singular values kommer sortert ut i diagonal matrisen). Når en kjører svd ( ) i matlab får en derfor ut

1. Så det en gjør er å finne alle egenverdier, for så å sortere i ikke voksende orden.
2. Ta de N største som passer av (de M > N egenverdiene kan være der)

Hvis multiplisitet større enn 1 håndteres dette av sortering.

Uansett, så er det flere riktige svar og fasiten har ikke mer rett enn deg selv om det er et annet riktig svar. For meg virker det som den er hentet ut fra svd fra matlab som finner noe på en måte som gjør at alle kommer frem til samme svar.
stenvik team
Noether
Noether
Innlegg: 47
Registrert: 29/11-2012 15:39

Ok, takk så mye for hjelpen.
origon

Fant egentlige årsaken til sorterings konvensjonen som egentlig ikke er nødvendig og har med O-notasjon å gjøre i matlab verdenen:

"Since developers don't want to perform a costly sort to find the smallest eigenvalues every time, most implementations output sorted SVD matrices. "

https://math.stackexchange.com/question ... lest-value
Svar