🅒 Wizualizator SVD
A=USigmaVt
Podobne symulacje
O tej symulacji
Ten wizualizator oblicza dokładny rozkład według wartości osobliwych A = UΣVᵀ dowolnej wprowadzonej macierzy 2×2, wykorzystując rozwiązanie analityczne w postaci zamkniętej zamiast algorytmu iteracyjnego: wartości osobliwe σ₁ ≥ σ₂ są wyznaczane z wartości własnych AᵀA, prawe wektory osobliwe v₁, v₂ to odpowiadające im wektory własne AᵀA, a lewe wektory osobliwe odzyskuje się bezpośrednio jako uᵢ = Avᵢ / σᵢ. Lewy panel rysuje przerywany okrąg jednostkowy wraz z v₁ i v₂ — kierunkami wejściowymi, które A rozciąga najmocniej — podczas gdy prawy panel pokazuje ten sam okrąg przekształcony przez A w elipsę, której półosie równe są σ₁ i σ₂, zgodne z u₁ i u₂. Wykres słupkowy pokazuje, jaki udział w kwadratowej energii macierzy (normie Frobeniusa) σ₁² + σ₂² przechwytuje sama największa wartość osobliwa.
🔍 Co przedstawia
Jak dowolne przekształcenie liniowe 2×2 wygina okrąg jednostkowy w elipsę: prawe wektory osobliwe v₁, v₂ wyznaczają kierunki wejściowe rozciągane najmocniej, półosie elipsy są równe wartościom osobliwym σ₁ i σ₂, a jej osie są zgodne z lewymi wektorami osobliwymi u₁, u₂. Pasek statystyk śledzi też wyznacznik, rząd, normę spektralną ‖A‖₂ = σ₁ oraz liczbę uwarunkowania σ₁/σ₂.
🖱️ Jak korzystać
Kliknij preset (Tożsamość, Skalowanie, Ścinanie, Obrót 45°, Niski rząd, Losowa), aby wczytać gotową macierz, lub wpisz własne wartości w pola a, b, c, d — elipsa, rozkład macierzy U·Σ·Vᵀ i wszystkie statystyki aktualizują się na żywo w trakcie pisania. Naciśnij przycisk ?, aby otworzyć pełny panel wzorów referencyjnych.
💡 Czy wiesz, że?
Ułożenie SVD macierzy danych i zachowanie tylko kilku największych wartości osobliwych daje najlepsze możliwe przybliżenie danych o niskim rzędzie — matematyczną podstawę kompresji obrazów, systemów rekomendacji i analizy głównych składowych (PCA). Gdy σ₂ spada do zera, preset „Niski rząd” pokazuje, jak elipsa zapada się w linię: macierz staje się osobliwa i nieodwracalnie traci cały wymiar informacji.
Najczęściej zadawane pytania
Czym jest rozkład według wartości osobliwych (SVD)?
SVD rozkłada dowolną rzeczywistą macierz A o wymiarach m×n na A = UΣVᵀ, gdzie U i V są macierzami ortogonalnymi (obrót/odbicie), a Σ jest macierzą diagonalną o nieujemnych wartościach σ₁ ≥ σ₂ ≥ … zwanych wartościami osobliwymi. Geometrycznie oznacza to, że każde przekształcenie liniowe jest obrotem, po którym następuje rozciągnięcie wzdłuż osi, a potem kolejny obrót. W przeciwieństwie do rozkładu na wartości własne, SVD istnieje dla każdej macierzy, w tym niekwadratowych i osobliwych, dlatego leży u podstaw PCA, kompresji obrazów i pseudoodwrotności Moore'a-Penrose'a.
Jak ten wizualizator oblicza SVD bez algorytmu iteracyjnego?
Dla macierzy 2×2 SVD ma rozwiązanie w postaci zamkniętej. Kod najpierw oblicza AᵀA i analitycznie znajduje jej wartości własne na podstawie śladu i wyróżnika, dając bezpośrednio σ₁² i σ₂². Wektor własny AᵀA odpowiadający σ₁² staje się v₁ (a v₂ jego ortogonalnym dopełnieniem), a każdy lewy wektor osobliwy uzyskuje się, przepuszczając vᵢ przez A i skalując: uᵢ = Avᵢ/σᵢ. Pozwala to uniknąć iteracyjnych metod Jacobiego czy metody potęgowej, więc wynik aktualizuje się natychmiast przy każdym naciśnięciu klawisza.
Co reprezentują geometrycznie wartości osobliwe σ₁ i σ₂?
Są to długości półosi elipsy, którą A tworzy, przekształcając okrąg jednostkowy. σ₁ to największy możliwy współczynnik rozciągnięcia, jaki A może zastosować do dowolnego wektora jednostkowego (jego norma spektralna ‖A‖₂), a σ₂ to najmniejszy. Ich stosunek σ₁/σ₂ to liczba uwarunkowania pokazana na pasku statystyk; duża liczba uwarunkowania oznacza, że macierz rozciąga niektóre kierunki znacznie bardziej niż inne i jest numerycznie bliska osobliwości.
Dlaczego lewe wektory osobliwe (U) różnią się od prawych wektorów osobliwych (V)?
Kolumny V to wektory własne AᵀA i opisują kierunki wejściowe — gdzie musi wskazywać wektor jednostkowy przed przekształceniem, aby zostać rozciągnięty najbardziej. Kolumny U opisują odpowiadające kierunki wyjściowe po przekształceniu, obliczone jako uᵢ = Avᵢ/σᵢ. Dla macierzy symetrycznej U i V pokrywają się, ale ogólnie A obraca przestrzeń na wejściu i obraca ją ponownie (często inaczej) na wyjściu, więc te dwie bazy ortogonalne są różne, chyba że A jest symetryczna lub jest czystym skalowaniem.
Co się dzieje, gdy wartość osobliwa wynosi zero?
Zerowa wartość osobliwa oznacza, że A zapada cały kierunek wejściowy do wektora zerowego — elipsa wyjściowa degeneruje się do odcinka (rząd 1) lub pojedynczego punktu (rząd 0), co dokładnie pokazuje preset „Niski rząd” (macierz [[2,4],[1,2]], której wiersze są proporcjonalne). Statystyka rzędu liczy wartości osobliwe powyżej małego progu numerycznego, wyznacznik staje się zerem, a liczba uwarunkowania zgłaszana na pasku statystyk staje się nieskończona, ponieważ macierzy nie da się już odwrócić.
Jak oblicza się procent „przechwyconej energii” na wykresie słupkowym?
Symulator oblicza kwadrat normy Frobeniusa A jako σ₁² + σ₂² (równy sumie kwadratów każdego elementu macierzy) i podaje σ₁²/(σ₁²+σ₂²) jako procent. To ta sama wielkość używana do decydowania, ile wartości osobliwych zachować w przybliżeniu danych o niskim rzędzie: zachowanie tylko σ₁ zachowuje ten procent całkowitej „energii” macierzy, dlatego obcięte SVD jest tak skutecznym narzędziem kompresji i odszumiania w praktyce.
Obserwuj, jak macierz 2x2 rozkłada się jako A=UΣVᵀ: obrót, rozciągnięcie według wartości osobliwych, a potem kolejny obrót. Wypróbuj presety lub wpisz własne a, b, c, d.
3D · Renderer Three.js / WebGL · docelowo 60 FPS · działa w całości po stronie klienta, bez instalacji