🅒 Візуалізатор SVD
Візуалізатор сингулярного розкладу A = UΣVᵀ: обертання, розтяг і сингулярні значення матриці наочно.
Схожі симуляції
Про цю симуляцію
Цей візуалізатор обчислює точний сингулярний розклад A = UΣVᵀ будь-якої введеної матриці 2×2, використовуючи аналітичний розв'язок у замкненій формі замість ітеративного алгоритму: сингулярні значення σ₁ ≥ σ₂ отримують із власних значень AᵀA, праві сингулярні вектори v₁, v₂ — це відповідні власні вектори AᵀA, а ліві сингулярні вектори обчислюють безпосередньо як uᵢ = Avᵢ / σᵢ. Ліва панель малює пунктирне одиничне коло з v₁ і v₂ — вхідними напрямками, які A розтягує найбільше, — тоді як права панель показує те саме коло, відображене через A в еліпс, чиї півосі дорівнюють σ₁ і σ₂ та збігаються з u₁ і u₂. Стовпчикова діаграма показує, яку частку квадратичної (фробеніусової) енергії матриці σ₁² + σ₂² захоплює саме найбільше сингулярне значення.
🔍 Що показує симуляція
Як будь-яке лінійне відображення 2×2 вигинає одиничне коло в еліпс: праві сингулярні вектори v₁, v₂ позначають вхідні напрямки, розтягнуті найбільше, півосі еліпса дорівнюють сингулярним значенням σ₁ та σ₂, а його осі спрямовані вздовж лівих сингулярних векторів u₁, u₂. Панель статистики також відстежує визначник, ранг, спектральну норму ‖A‖₂ = σ₁ та число обумовленості σ₁/σ₂.
🖱️ Як користуватися
Натисніть один із пресетів (Одинична, Масштабування, Зсув, Обертання 45°, Низький ранг, Випадкова), щоб завантажити готову матрицю, або введіть власні значення в поля a, b, c, d — еліпс, розклад матриці U·Σ·Vᵀ і всі статистичні показники оновлюються в реальному часі під час введення. Натисніть кнопку «?», щоб відкрити повну довідкову панель формул.
💡 Чи знали ви?
Обчисливши SVD матриці даних і залишивши лише кілька найбільших сингулярних значень, отримують найкраще можливе наближення цих даних матрицею низького рангу — математичну основу стиснення зображень, рекомендаційних систем і методу головних компонент. Коли σ₂ спадає до нуля, пресет «Низький ранг» показує, як еліпс вироджується в лінію: матриця стає сингулярною і безповоротно втрачає цілий вимір інформації.
Часті запитання
Що таке сингулярний розклад (SVD)?
SVD розкладає будь-яку дійсну матрицю A розміру m×n у добуток A = UΣVᵀ, де U і V — ортогональні (обертання/відбиття) матриці, а Σ — діагональна матриця з невід'ємними елементами σ₁ ≥ σ₂ ≥ …, які називають сингулярними значеннями. Геометрично це означає, що будь-яке лінійне відображення є обертанням, за яким слідує розтягування вздовж осей, а потім ще одне обертання. На відміну від власного розкладу, SVD існує для будь-якої матриці, зокрема неквадратної й необоротної, тому він лежить в основі PCA, стиснення зображень і псевдооберненої матриці Мура–Пенроуза.
Як цей візуалізатор обчислює SVD без ітеративного алгоритму?
Для матриці 2×2 SVD має розв'язок у замкненій формі. Спочатку код обчислює AᵀA і знаходить її власні значення аналітично зі сліду та дискримінантного члена, отримуючи σ₁² та σ₂² напряму. Власний вектор AᵀA, що відповідає σ₁², стає v₁ (а v₂ — його ортогональним доповненням), а кожен лівий сингулярний вектор отримують, пропускаючи vᵢ через A і масштабуючи: uᵢ = Avᵢ/σᵢ. Це дозволяє уникнути будь-якого ітеративного методу Якобі чи степеневого методу, тож результат оновлюється миттєво з кожним натисканням клавіші.
Що геометрично означають сингулярні значення σ₁ та σ₂?
Це довжини півосей еліпса, який утворює A, відображаючи одиничне коло. σ₁ — найбільший можливий коефіцієнт розтягування, який A може застосувати до будь-якого одиничного вектора (її спектральна норма ‖A‖₂), а σ₂ — найменший. Їхнє відношення σ₁/σ₂ — це число обумовленості, показане у панелі статистики; велике число обумовленості означає, що матриця розтягує одні напрямки набагато сильніше за інші й чисельно близька до сингулярної.
Чому ліві сингулярні вектори (U) відрізняються від правих (V)?
Стовпці V — це власні вектори AᵀA, які описують вхідні напрямки: куди повинен вказувати одиничний вектор до перетворення, щоб зрештою розтягнутися найбільше. Стовпці U описують відповідні вихідні напрямки після перетворення, обчислені як uᵢ = Avᵢ/σᵢ. Для симетричної матриці U і V збігаються, але загалом A обертає простір на вході й обертає його знову (часто інакше) на виході, тож ці два ортогональні базиси різняться, якщо тільки A не є симетричною або чистим масштабуванням.
Що відбувається, коли сингулярне значення дорівнює нулю?
Нульове сингулярне значення означає, що A стискає весь вхідний напрямок у нульовий вектор — вихідний еліпс вироджується у відрізок (ранг 1) або в одну точку (ранг 0), саме це демонструє пресет «Низький ранг» (матриця [[2,4],[1,2]], рядки якої пропорційні). Показник рангу підраховує сингулярні значення, що перевищують малий числовий поріг, визначник стає нульовим, а число обумовленості, показане в панелі статистики, стає нескінченним, оскільки матрицю вже не можна обернути.
Як обчислюють відсоток «захопленої енергії» на стовпчиковій діаграмі?
Симулятор обчислює квадрат норми Фробеніуса матриці A як σ₁² + σ₂² (що дорівнює сумі квадратів усіх елементів матриці) і показує σ₁²/(σ₁²+σ₂²) у відсотках. Це та сама величина, яку використовують, щоб вирішити, скільки сингулярних значень залишити в наближенні реальних даних матрицею рангу k: залишивши лише σ₁, зберігають саме цей відсоток загальної «енергії» матриці, тому усічений SVD є настільки ефективним інструментом стиснення та усунення шуму на практиці.