Matematika feladatok
-
n3whous3 #2628 Sziasztok, remélem valaki jártas itt a numerikus matematikában és a lineáris algebrában.
Adott a singular value decomposition algoritmus (itt egy link), bár nem ezzel van a bajom. Adott egy másik algoritmus, ahol szükségem lenne egy alacsony szintű közelítésére az eredeti mátrixnak.
Tehát ha adott C mátrix, akkor az SVD után kapom ezeket:
U, Szigma és V transzponált mátrix. (Szigma egy diagonális mátrix, a főátlóban a saját értékei vannak C-nek nemnövekvő sorrendben)
Az alacsony rangú közelítés lényege, hogy egy mátrixnak, ha eltekintünk az alacsony értékű saját értékeitől, akkor visszaalakítva a mátrixot, egy "hasonló" mátrixot kapunk (arra alkalmas értékre a Frobenius távolságuk kicsi).
Legyen egy k érték (amelyikre a Frob. hiba alacsony), aztán fogom és Szigma2 := Szigma, amiben az első k sajátértéket kivéve mindent átírok 0-ra.
Aztán van egy képlet az egészre, miszerint C2 = U * Szigma2 * V transzponált. Vagy egy egyszerűbb alak:
k
Szumma (i-edik saját érték * U iedik oszlopvektora * V^t i-edik sorvektora)
i = 1
Az egyszerűbb alakból látszik, hogy összeadunk pár súlyozott mátrixot (oszlopvektor * sorvektor = egy mátrix)
és akkor, hogy mi a bajom
van egy példa egy jegyzetemben, ahol az van, hogy a C2 első k során kívül minden más sor csupa 0. Na már most a fenti 2 módszer bármelyikével számolva még véletlen se lesz általános esetben C2 olyan, hogy k. sortól kezdve csupa nulla... Nem tudom hol baszom el az egészet, de mással is már beszéltem és senkinek nem jött ki az a példa eredmény. Márpedig valami ilyesmit várok el eredménynek, mert arra lenne szükségem, hogy egy KURVA nagy mátrixban csökkentsem a sorok számát, hogy egy utólagos számítás számításigényét csökkentsem.
Nos?
ps.: itt egy cikk a low rank approximationről