ГоловнаСтаттіМатематика

Розкладання за власними значеннями: Поворот, Розтяжка, Поворот

Кожна матриця, квадратна чи ні, розкладається на дві ротації та розтяжку — SVD пояснює, як працюють низькорангове наближення, PCA та стабільна лінійна алгебра.

mysimulator teamОновлено — червень 2026≈ 7 хв читання▶ Відкрити симуляцію

Розкладання матриці за допомогою сингулярного розгортання

Сингулярне розгортання (SVD) є узагальненим розкладанням, яке працює для будь-якої матриці, квадратної або ні. Кожна матриця A може бути розкладена як:

A = U Σ Vᵀ де U та V — ортогональні матриці (чисті оберти/віддзеркалення — вони зберігають довжину та кути), а Σ — діагональна матриця з невід’ємними елементами, відсортовані у спадному порядку, сингулярні значення.

Геометрично це означає, що будь-який лінійний переклад, незалежно від того, наскільки він складний, розкладається точно на три прості кроки: обертання (Vᵀ), розтягнення вздовж координатних осей за допомогою сингулярних значень (Σ) та повторне обертання (U).

A = U Σ Vᵀ
жива демонстрація · пов'язана симуляція● LIVE

Розкладання за власними значеннями: відмінності та зв'язки

Для загального матричного рівняння, власні значенні та власні вектори є різними числами, що відповідають різним запитанням — власні значенння описують масштабування вздовж спеціальних інваріантних напрямків (які можуть не існувати як дійсні числа або бути некоректними), а власні вектори описують фактичний максимальний та мінімальний коефіцієнт розтягування відображення, завжди дійсні, завжди невід’ємні та завжди існують для будь-якої матриці. Зв'язок: власні вектори матриці A є квадратними коренями власних значень AᵀA (яка завжди є квадратною, симетричною та позитивно визначеною, тому її власні значення гарантовано дійсні та невід’ємні). Для спеціального випадку симетричної та позитивно визначеної матриці, власні вектори та власні значенння збігаються точно і U = V, що пояснює, чому SVD та розкладання за власні значення лише виглядають різними для загальних матриць, а не для цього особливого випадку.

Визначення найбільшого власного значення

Найбільше власне значення σ1 є оператором норми матриці: максимальний множник, на якому матриця A може розтягнути будь-який одиничний вектор, досягається точно вздовж напрямку першого правого власного вектора (стовпця V) та припадає на перший лівий власного вектор (стовпця U). Найменше власне значення повідомляє вам, наскільки близько матриця до того, щоб бути невизначеною (незворотною) — дуже мале найменше власне значення відносно найбільшого означає, що матриця майже не має недостатньої розрідженості, чутлива до числових помилок при обчисленні та співвідношення σmax/σmin є точно числом умовного коефіцієнту матриці, стандартним показником того, наскільки малі похибки вхідних даних підсилюються при розв'язанні лінійної системи з цією матрицею.

for A = [[a,b],[c,d]]:
  compute AᵀA (symmetric 2×2)
  eigenvalues of AᵀA = σ1², σ2²
  σ1 ≥ σ2 ≥ 0 are the singular values
  V = eigenvectors of AᵀA,  U = A·V / σ  (normalised)

Чому SVD є основною силою за низькорівневою апроксимацією

Оскільки власні значення Σ відсортовані, обрізання розкладу — зберігати лише верхні k власних значень і відповідні рядки/стовпці U та V, нульову решту — дає найкраще можливе rank-k апроксимування A у точній, доведеному сенсі (теорема Eckart-Young: жодна інша rank-k матриця не настільки близько до A за стандартної норми матриць). Цей єдиний факт лежить в основі стиснення зображень (зберігати найбільші власні значення зображення, яке розглядається як матриця, та відкинути решту, і значна частина візуальної інформації зберігається), рекомендаційних систем (апроксимувати величезну розріджену матрицю користувач-предмет з використанням rank-k SVD для виведення відсутніх уподобань), зменшення шуму (малі власні значення часто відповідають шуму, а не сигналу) та числової основи PCA (головні компоненти набору даних є точно правими-окремними векторами середньої матриці даних).

Розкладання за власними значеннями: A=UΣVᵀ

SVD є чисельно стабільнішим у розрахунку, ніж розклад за власні значення для загальних матриць, завжди існує (навіть для сингулярних або неквадратних матриць, де розклад за власні значення може бути визначений), і безпосередньо виявляє ранг, нульовий простір та умовність — тому бібліотечні процедури для вирішення задач найменших квадратів, обчислення рангів матриць або інверсії погано узалеснених систем зазвичай використовують SVD замість розкладу за власні значення, навіть якщо матриця випадково є квадратною.

Часті запитання

Як SVD відрізняється від діагоналізації матриці з її власними векторами?

Діагоналізація працює лише чисто для квадратних матриць із повною множиною незалежних власних векторів, і цей власний векторний базис зазвичай не є ортонормальним. SVD працює для будь-якої матриці, квадратної чи ні, і обидва її обертальні матриці U та V гарантовано ортогональні, тому це більш надійна, універсально застосовна декомпозиція.

Що повідомляє вам дуже мале сингулярне значення про матрицю?

Воно сигналізує, що матриця близька до сингулярної (незворотньої) вздовж цього конкретного напрямку — вхідні дані, вирівняні з відповідним правою сингулярною векторною, стискаються майже до нуля. Малий відношення між найменшим і найбільшим сингулярними значеннями (великий числовий коефіцієнт) означає, що матриця є чисельно вразливою: розв'язання лінійної системи з нею значно збільшить невеликі вхідні помилки.

Чому обрізання SVD дає найкращу низькорангову апроксимацію матриці?

Це теорема Еккарта-Юнга: оскільки сингулярні значення відсортовані за тим, наскільки вони представляють загальну «енергію розтягування» матриці, зберігання верхніх k і відкидання решти зберігає найбільш значущі напрямки варіації, а також найменш значущі, і жодна інша матриця з рангом k не може бути ближчою до початкової в стандартній матричній нормі.

Спробуйте наживо

Усе, що вище, працює прямо у вашому браузері — відкрийте SVD Visualizer і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.

▶ Відкрити симуляцію SVD Visualizer

Що ви знайшли?

Додати кроки відтворення (опційно)