Metody dekompozycji macierzy


Rozkład SVD (Singular Value Decomposition)

Metoda ta polega na zapisaniu dowolnej prostokątnej macierzy rzeczywistej A w postaci iloczynu:

A = UΣVT
gdzie macierze U i V są ortogonalne, a macierz Σ jest diagonalna.
Niezerowe elementy macierzy Σ to tzw. wartości szczególne macierzy A i nie zależą one od rozkładu SVD. Kolumny macierzy U i V nazywamy, odpowiednio, lewymi i prawymi wektorami szczególnymi macierzy A.

W matlabie svd realizowane jest przy użyciu funkcji svd.

Ogólna forma funkcji:

[U, S, V] = svd(A, 'econ', 0)

Zadanie 1

Znaleźć rozkład SVD dla podanych macierzy:

Zadanie 2

Utwórz macierz A(3x3) gdzie kolejny element wyliczany jest wzorem:

A(i,j) =(1/((i+1/2)*j))
Następnie oblicz svd dla wygenerowanej macierzy.

Zadanie 3

Wygeneruj macierz kwadratowa o wymiarze 5, której każdy składnik macierzy jest liczbą naturalną (tzw. magiczny kwadrat). Policz svd dla wygenerowanej macierzy.
Znając wartości U, S oraz V oblicz macierz A z dokładnością do 10 cyfr. Rezultat powinien być taki sam jak macierz wejściowa A.

Zadanie 4

Wygeneruj macierz A(8x7) losowymi liczbami całkowitymi z zakresu (1,12). Policz wartości szczególne macierzy i wyświetl je na wykresie. Czy zauważasz zależności dotyczące wartości szczególnych ? W jaki sposób ich wartości maleją ? Czy jest wartość która znacząco odbiega od pozostałych ?
Oblicz rząd macierzy S.

Zadanie 5

Znaleźć rozkład SVD dla podanych macierzy:

Załóż, że macierze rozkładu mają układ oszczędny. Sprawdź jak różnią się wartości w przypadku założenia układu oszczędnego i jego braku. Czy w tym przypadku ma znaczenie wymiar macierzy ?

Zadanie 6

Jednym z zastosowań SVD jest kompresja zdjęć. Wczytaj standardowe zdjęcie RGB dostępne w Matlabie (np. onion.png). Dokonaj svd na wczytanym obrazie. Porównaj wczytany obraz z otrzymanym po svd. Następnie utwórz 4 nowe obrazy zawierające wartości po dekompresji ale mające mniej rzędów niż obraz wejściowy (tzw. parametr k, który przyjmij jako 10, 25, 50, 100). Wyświetl wynik i porównaj z obrazem wejściowym. Sprawdź na innym obrazku czy wielkość k zależy od stopnia skomplikowania obrazka ?

Macierz pseudoodwrotna Moore-Penrose

W Matlabie realizowana za pomocą funkcji pinv.

Zadanie 7

Oblicz macierz pseudoodwrotną Moore'a-Penrosa dla podanego układu:

Zadanie 8

Oblicz macierz pseudoodwrotną Moore'a-Penrosa dla podanego układu, ustawiając dokładność obliczeń, bliską zeru.

Zadanie 9

Oblicz macierz pseudoodwrotną Moore'a-Penrosa dla podanego układu:


Sprawdź czy spełnione są założenia: