Удивительно простое доказательство сингулярного разложения матриц
SVD без собственных значений

SVD без собственных значений

Начнём с общей схемы доказательства.

Ниже подробно разберём все обозначения, леммы и переходы.

Общая схема доказательства SVD

Общая схема доказательства SVD

Сингулярное разложение (Singular Value Decomposition, SVD) обычно выводят из спектральной теоремы для симметричной матрицы A^T A.

У этого классического пути есть педагогический недостаток: он уводит нас от исходного геометрического смысла отображения в алгебру квадратичных форм и характеристических многочленов. Между тем геометрическое утверждение SVD предельно наглядно и просто:

Для любого линейного отображения Acolonmathbb{R}^ntomathbb{R}^m существует ортонормированный базис во входном пространстве, образы векторов которого попарно ортогональны.

Возникает естественный вопрос: можно ли доказать существование такого базиса напрямую — без собственных значений, без определителей, без спектральной теоремы и без производных?

Оказывается, можно. Для этого достаточно школьной тригонометрии, понятия предела последовательности, матриц и теории про ортонормированные базисы вmathbb{R}^n.

Главным преимуществом такого подхода является возможность изложить теорию SVD-разложения матриц уже в середине первого семестра вуза, и дальше строить вузовский курс линейной алгебры вокруг нее. Кроме того, статья может помочь лучше разобраться в SVD тем, кто давно хотел это сделать, или открыть для себя какие-то новые геометрические смыслы.

1. Что именно мы ищем

Сначала напомним, что означают ортонормированный базис и ортогональная матрица. Это два способа описать одну и ту же геометрическую конструкцию.

Ортонормированный базис.

Базис — это набор векторов, через который любой вектор пространства единственным образом выражается как линейная комбинация.

Базис q_1,ldots,q_n в mathbb{R}^n называется ортонормированным, если все его векторы имеют единичную длину и попарно перпендикулярны:

langle q_i,q_jrangle=begin{cases}1,&i=j,\0,&ine j.end{cases}

Слово «ортонормированный» объединяет два условия: «орто» отвечает за взаимную ортогональность, а «нормированный» — за единичные длины.

Любые n векторов с этими свойствами в mathbb{R}^n автоматически образуют базис.

Действительно, если их линейная комбинация равна нулю, скалярное умножение на q_j выделяет её коэффициент при q_j и показывает, что он равен нулю. Значит, векторы линейно независимы, а их число равно размерности пространства.

Ортогональная матрица.

Вещественная квадратная матрица Q размера ntimes n называется ортогональной, если

Q^TQ=I_n,

где Q^T — транспонированная матрица, а I_n — единичная. Для квадратной матрицы это означает, что обратная матрица совпадает с транспонированной:

Q^{-1}=Q^T,qquad QQ^T=I_n.

Название может сбивать с толку: столбцы ортогональной матрицы не только перпендикулярны друг другу, но и обязательно имеют единичную длину.

Почему эти определения связаны.

Запишем векторы q_i в стандартных координатах и поставим их в столбцы матрицы:

Q=begin{pmatrix}q_1&q_2&cdots&q_nend{pmatrix}.

По правилу умножения матриц элемент произведения Q^TQ на позиции (i,j) равен скалярному произведению соответствующих столбцов:

(Q^TQ)_{ij}=langle q_i,q_jrangle.

Поэтому матрица ортогональна тогда и только тогда, когда её столбцы образуют ортонормированный базис.

Из равенства QQ^T=I_n следует, что её строки тоже образуют ортонормированный базис.

Геометрический смысл.

Ортогональная матрица сохраняет скалярные произведения:

langle Qx,Qyrangle=x^TQ^TQy=x^Ty=langle x,yrangle.

Следовательно, она сохраняет длины и углы между ненулевыми векторами: пространство можно повернуть или отразить, но нельзя растянуть или перекосить. Например,

Q=frac{1}{sqrt{2}}begin{pmatrix}1&-1\1&1end{pmatrix}

задаёт поворот плоскости на 45 градусов. Её столбцы — единичные взаимно перпендикулярные векторы нового базиса. Ортогональные преобразования могут включать и отражения, поэтому не всякая ортогональная матрица является чистым поворотом.

Связь со сменой координат.

Если x — столбец координат вектора в базисе (q_1,ldots,q_n), то его координаты равны

z=Qx=x_1q_1+cdots+x_nq_n,qquad x=Q^Tz.

Здесь геометрический вектор остаётся тем же: меняется способ записать его координаты. Таким образом, искать ортонормированный базис и искать ортогональную матрицу, составленную из его векторов, — две формы одной задачи.

Один и тот же вектор в двух ортонормированных базисах. Меняются координаты и проекции, сам вектор остаётся прежним.

Один и тот же вектор в двух ортонормированных базисах. Меняются координаты и проекции, сам вектор остаётся прежним.

Теперь применим эту связь между базисами и матрицами к самому линейному отображению.

Пусть A — фиксированная вещественная матрица размера mtimes n, задающая отображение из mathbb{R}^n в mathbb{R}^m. Здесь участвуют два пространства, и в каждом из них можно независимо выбрать ортонормированный базис.

Соберём векторы входного базиса в столбцы ортогональной матрицы V размера ntimes n, а выходного — в столбцы ортогональной матрицы U размера mtimes m.

Проследим, как теперь записывается действие A.

Если x — координаты входного вектора в базисе V, то его стандартные координаты равны z=Vx. Применив отображение, получим y=Az=AVx.

Чтобы выразить результат в базисе U, нужно умножить его на U^T:

b=U^Ty=U^TAVx.

Значит, матрица того же отображения в новых базисах имеет вид

B=U^TAV.

Само отображение осталось прежним: мы лишь выбрали, по каким осям измерять входные и выходные векторы. Но от выбора осей зависит, насколько сложной выглядит его матрица.

Самая удобная картина — когда координаты не смешиваются: каждая входная координата умножается на своё неотрицательное число и попадает в соответствующую выходную координату, а некоторые направления могут переходить в ноль. Такой картине соответствует прямоугольная диагональная матрица Sigma.

Утверждение SVD состоит в том, что подходящие ортонормированные базисы существуют для любой вещественной матрицы.

Именно это мы и будем доказывать. В выбранных базисах должно выполняться

U^TAV=Sigma.

Геометрия SVD для отображения (x, y) ↦ (2x + y, y). Прямое действие A и путь Vᵀ → Σ → U дают одинаковый результат. Цветные стрелки отслеживают e₁ и e₂; σ₁ и σ₂ — длины полуосей эллипса. Матрицы округлены до трёх знаков.

Геометрия SVD для отображения (x, y) ↦ (2x + y, y). Прямое действие A и путь Vᵀ → Σ → U дают одинаковый результат. Цветные стрелки отслеживают e₁ и e₂; σ₁ и σ₂ — длины полуосей эллипса. Матрицы округлены до трёх знаков.

Здесь Sigma имеет размер mtimes n. Её ненулевые диагональные элементы можно расположить в порядке sigma_1gesigma_2gecdotsgesigma_r>0, где r=operatorname{rank}A; все остальные элементы равны нулю. Если ранг равен нулю, то A=0 и Sigma=0, а базисы можно выбрать произвольно.

Наконец, умножим равенство слева на U, а справа на V^T. Благодаря ортогональности матриц получаем привычную запись сингулярного разложения:

A=U Sigma V^T.

Если домножить это равенство справа на V (помня, что для ортогональной матрицы V^T V=V V^T=I), условие переписывается в виде:

A V=U Sigma.

Столбцы матрицы V=(v_1, v_2, dots, v_n) образуют ортонормированный базис в mathbb{R}^n.

Столбцы матрицы U=(u_1, u_2, dots, u_m) образуют ортонормированный базис в mathbb{R}^m. Равенство A V=U Sigma по столбцам означает:

A v_i=sigma_i u_i quad (1 le i le r), qquad A v_i=0 quad (r < i le n).

Столбцы AV — образы входного базиса. Ненулевые образы нормируем и дополняем до ортонормированного базиса выхода; нулевые соответствуют ядру A. Цвет связывает вектор с его образом, а длины полос условны.

Столбцы AV — образы входного базиса. Ненулевые образы нормируем и дополняем до ортонормированного базиса выхода; нулевые соответствуют ядру A. Цвет связывает вектор с его образом, а длины полос условны.

Поскольку базис u_1, dots, u_m ортонормирован, векторы A v_i должны быть попарно ортогональны:

langle A v_i, A v_j rangle=0 quad text{при } i ne j.

Это сводит всю задачу к геометрически прозрачной и интуитивно понятной цели:

найти во входном пространстве mathbb{R}^n такой ортонормированный базис (v_1, dots, v_n), чтобы образы (A v_1, dots, A v_n) в mathbb{R}^m оказались попарно взаимно перпендикулярны.

Один оператор и два ортонормированных входных базиса. В подходящем базисе V образы взаимно перпендикулярны; их длины дают сингулярные числа, а нормировка — векторы выходного базиса U.

Один оператор и два ортонормированных входных базиса. В подходящем базисе V образы взаимно перпендикулярны; их длины дают сингулярные числа, а нормировка — векторы выходного базиса U.

Как только такой базис будет найден, нормировка ненулевых образов сразу даст сингулярные числа sigma_i=|A v_i| и первые r столбцов матрицы U.

Дополнив их до базиса всего mathbb{R}^m, мы получим искомое разложение.

Окружность, эллипс и ортогональные образы базиса

Окружность, эллипс и ортогональные образы базиса

Геометрия на примере A=begin{pmatrix}2&1\0&1end{pmatrix}.

Единичная окружность переходит в эллипс.

Подходящий ортонормированный базис входа даёт два ортогональных образа — главные полуоси этого эллипса. Их длины и есть сингулярные числа.


2. Двумерная лемма: ортогонализация одной пары вращением

Начнем с элементарного случая: у нас есть всего два ортонормированных вектора v, w in mathbb{R}^n. Их образы A v, A w in mathbb{R}^m в общем случае, вообще говоря не ортогональны: их скалярное произведение langle A v, A w rangle может быть отлично от нуля.

Повернем пару (v, w) в порождаемой ими плоскости на угол theta:

begin{aligned}v_theta &=costheta cdot v + sintheta cdot w, \w_theta &=-sintheta cdot v + costheta cdot w.end{aligned}

Легко проверить, что пара (v_theta, w_theta) остается ортонормированной и задает ту же плоскость при любом значении theta.

Вычислим скалярное произведение их образов как функцию угла theta:

f(theta)=langle A v_theta, A w_theta rangle=langle costheta , A v + sintheta , A w, ; -sintheta , A v + costheta , A w rangle.

Раскрывая билинейное скалярное произведение, получаем:

begin{aligned}f(theta) &=-costheta sintheta , |Av|^2 + cos^2theta , langle Av, Aw rangle - sin^2theta , langle Av, Aw rangle + sintheta costheta , |Aw|^2 \&=(cos^2theta - sin^2theta) langle Av, Aw rangle + sintheta costheta left( |Aw|^2 - |Av|^2 right).end{aligned}

Используя формулы двойного угла cos^2theta - sin^2theta=cos 2theta и 2sinthetacostheta=sin 2theta, приходим к виду:

f(theta)=alpha cos 2theta + beta sin 2theta,

где коэффициенты полностью определяются исходной геометрией:

alpha=langle Av, Aw rangle, qquad beta=frac{|Aw|^2 - |Av|^2}{2}.

Наша цель — найти угол theta, при котором f(theta)=0.

  1. Если alpha=0 и beta=0, то f(theta) equiv 0 для всех theta. Образы уже ортогональны, и вращение не требуется: можно положить theta=0.

  2. Если хотя бы один из коэффициентов отличен от нуля, положим R=sqrt{alpha^2 + beta^2} > 0. Тогда вектор (beta/R, alpha/R) лежит на единичной окружности: (alpha/R)^2 + (beta/R)^2=1. Следовательно, существует вспомогательный угол varphi in [0, 2pi), такой что:

sinvarphi=frac{alpha}{R}, qquad cosvarphi=frac{beta}{R}.

Подставим это представление в формулу для f(theta):

f(theta)=R left( sinvarphi cos 2theta + cosvarphi sin 2theta right)=R sin(2theta + varphi).

Теперь зануление функции становится тривиальным. Нам достаточно потребовать того, чтобы аргумент синуса обратился в ноль:

2theta_* + varphi=0 implies theta_*=-frac{varphi}{2}.

При таком угле theta_* образы повернутых векторов строго ортогональны: langle A v_{theta_*}, A w_{theta_*} rangle=0.

Вспомогательный угол varphi дает универсальное точное решение для любых начальных векторов, включая случай нулевых образов.

Анимация поворота входного базиса

Анимация поворота входного базиса

Поворот входного базиса для той же матрицы A=begin{pmatrix}2&1\0&1end{pmatrix}.

В анимации используется угол theta_*approx31{,}717^circ: скалярное произведение образов становится нулевым. Корни уравнения отличаются на pi/2; выбор другого корня меняет порядок и знаки векторов, но сохраняет ортогональность.


3. Препятствие в нескольких измерениях: эффект домино

Казалось бы, задача решена: если мы умеем ортогонализовать любую пару векторов, давайте просто перебирать пары по очереди. Возьмем пару (v_1, v_2), повернем её так, чтобы langle Av_1, Av_2 rangle=0. Затем возьмем (v_2, v_3) и повернем её, добившись langle Av_2, Av_3 rangle=0.

Но здесь нас ждет классическая ловушка линейной алгебры.

Поворачивая пару (v_2, v_3), мы заменяем вектор v_2 на линейную комбинацию:

v_2'=costheta , v_2 + sintheta , v_3.

Что произойдет с уже исправленным скалярным произведением первого и второго векторов?

langle A v_1, A v_2' rangle=costheta , underbrace{langle Av_1, Av_2 rangle}_{=0} + sintheta , langle Av_1, Av_3 rangle=sintheta , langle Av_1, Av_3 rangle.

Если вектор A v_3 не был ортогонален A v_1 и sinthetane0, то новое произведение langle Av_1, Av_2' rangle снова станет ненулевым.

Исправляя одну связь, мы можем нарушить соседние. Наивный попарный перебор рискует превратиться в бесконечную погоню за ускользающей ортогональностью. Что же делать?


4. Мера неортогональности и тождество сохранения

Чтобы управлять всем базисом сразу, введем скалярный функционал, измеряющий суммарное отклонение системы от взаимной ортогональности. Для любого ортонормированного базиса mathcal{V}=(v_1, dots, v_n) пространства mathbb{R}^n определим:

Phi(mathcal{V})=sum_{1 le i < j le n} langle A v_i, A v_j rangle^2.

Свойства этой величины:

  • Phi(mathcal{V}) ge 0, так как это сумма квадратов вещественных чисел.

  • Phi(mathcal{V})=0 тогда и только тогда, когда langle A v_i, A v_j rangle=0 для всех пар i < j. Это именно то, что нам требуется для построения SVD.

  • Суммирование ведется по строго упорядоченным парам i < j: каждая неупорядоченная пара учитывается ровно один раз.

Что произойдет со значением Phi(mathcal{V}), если мы выберем какую-то конкретную пару индексов (i, j) и повернем только эти два вектора на угол theta, оставив все остальные n-2 базисных вектора нетронутыми?

Разобьем слагаемые в сумме Phi на три непересекающиеся группы:

  1. Пара (i, j): её вклад равен langle A v_i, A v_j rangle^2.

  2. Пары, не содержащие ни i, ни j: для любых k, l notin {i, j} векторы v_k и v_l вообще не менялись, поэтому произведения langle A v_k, A v_l rangle^2 остаются константами.

  3. Пары, связывающие поворачиваемую пару с третьим вектором: для каждого фиксированного индекса k ne i, j в сумме присутствуют ровно два слагаемых:

langle A v_i, A v_k rangle^2 + langle A v_j, A v_k rangle^2.

Обозначим для краткости a_k=langle A v_i, A v_k rangle и b_k=langle A v_j, A v_k rangle, а также c=costheta, s=sintheta. После поворота новые векторы имеют вид:

v'_i=c , v_i + s , v_j, qquad v'_j=-s , v_i + c , v_j.

В силу линейности новые скалярные произведения с неизменным вектором A v_k равны:

langle A v'_i, A v_k rangle=c , a_k + s , b_k, qquad langle A v'_j, A v_k rangle=-s , a_k + c , b_k.

Сохранение суммы квадратов скалярных произведений

Сохранение суммы квадратов скалярных произведений

Вспомогательная плоскость скалярных произведений: горизонтальная координата — a_k=langle Av_i,Av_krangle, вертикальная — b_k=langle Av_j,Av_krangle. После поворота входной пары точка (a_k,b_k) остаётся на окружности a_k^2+b_k^2=mathrm{const}. Это не плоскость векторов Av_i,Av_j в выходном пространстве.

Теперь посчитаем сумму их квадратов:

begin{aligned}(c a_k + s b_k)^2 + (-s a_k + c b_k)^2 &=(c^2 a_k^2 + 2cs , a_k b_k + s^2 b_k^2) + (s^2 a_k^2 - 2cs , a_k b_k + c^2 b_k^2) \&=(c^2 + s^2) a_k^2 + (s^2 + c^2) b_k^2 \&=a_k^2 + b_k^2.end{aligned}

Перекрестные члены взаимно уничтожились, а c^2 + s^2=1.

Это ключевой момент всего доказательства:

для любого kne i,j сохраняется сумма квадратов двух скалярных произведений langle Av_i,Av_krangle^2+langle Av_j,Av_krangle^2 — при любом угле поворота.

Анимация инварианта во вспомогательной плоскости

Анимация инварианта во вспомогательной плоскости

Анимация того же инварианта: два квадрата могут увеличиваться и уменьшаться, а их сумма постоянна. Поэтому связи с третьим вектором перераспределяются, но не мешают уменьшить общий функционал за счёт выбранной пары.


5. Достижение минимума: предельный переход

Итак, мы имеем функционал Phi ge 0.

Множество всех ортонормированных базисов в mathbb{R}^n непусто (достаточно взять стандартный базис). Значит, у множества значений {Phi(mathcal{V})} существует точная нижняя грань (инфимум):

mu=inf_{mathcal{V}} Phi(mathcal{V}) ge 0.

Мы хотим показать, что этот инфимум не просто существует как абстрактное число, а фактически достигается на некотором ортонормированном базисе mathcal{V}_*.

Обычно в курсах анализа здесь говорят: «ортогональная группа O(n) компактна, а функция непрерывна, следовательно, по теореме Вейерштрасса минимум достигается».

Чтобы не скрывать суть за топологическими терминами, раскроем этот шаг явно через деление отрезков пополам (как в теореме Больцано — Вейерштрасса).

Строгое доказательство достижения минимума

По определению точной нижней грани для каждого натурального k=1, 2, dots мы можем выбрать ортонормированный базис mathcal{V}_k=(v_1^{(k)}, dots, v_n^{(k)}), для которого:

mu le Phi(mathcal{V}_k) < mu + frac{1}{k}.

Каждый вектор v_i^{(k)} имеет единичную длину в mathbb{R}^n, поэтому каждая из его координат лежит в отрезке [-1, 1]. Базис задается набором из n times n=n^2 вещественных чисел.

Возьмем первую координату первого вектора: это числовая последовательность в отрезке [-1, 1]. Разделим отрезок пополам. Хотя бы в одной из половин содержится бесконечно много членов последовательности.

Выберем эту половину и продолжим процесс деления. По принципу вложенных отрезков мы выделим подпоследовательность индексов, для которой первая координата сходится к некоторому числу.

Перейдем ко второй координате, просеивая уже выбранную подпоследовательность тем же методом. Поскольку общее число координат конечно (ровно n^2), мы повторим эту процедуру конечное число раз и получим одну общую подпоследовательность индексов k_ell, в которой сходятся координаты всех векторов:

v_i^{(k_ell)} xrightarrow{ell to infty} v_i^* quad text{для каждого } i=1, dots, n.

Проверим, образуют ли предельные векторы v_1^*, dots, v_n^* ортонормированный базис. Скалярное произведение является конечной суммой произведений координат, поэтому предельный переход сохраняет скалярные произведения:

langle v_i^*, v_j^* rangle=lim_{ell to infty} langle v_i^{(k_ell)}, v_j^{(k_ell)} rangle=lim_{ell to infty} delta_{ij}=delta_{ij},

где delta_{ij}=1 при i=j и delta_{ij}=0 при i ne j. Предельные векторы ортонормированы, а любой набор из n ортонормированных векторов в mathbb{R}^n автоматически является базисом.

Наконец, функционал Phi — многочлен степени не выше четырёх от координат базисных векторов. Поэтому предельный переход совместим с вычислением Phi:

Phi(mathcal{V}_*)=lim_{ell to infty} Phi(mathcal{V}_{k_ell})=mu.

Минимум действительно достигается: существует конкретный ортонормированный базис mathcal{V}_*=(v_1, dots, v_n), на котором Phi(mathcal{V}_*)=mu.

Заметьте: мы пока не утверждаем, что mu=0. Мы лишь доказали, что значение функционала Phi ни на каком другом базисе не может быть строго меньше mu.


6. Решающий шаг: почему минимум не может быть положительным

Предположим, что абсолютный минимум положителен: mu > 0.

Раз Phi(mathcal{V}_*)=mu > 0, в сумме квадратов обязан найтись хотя бы один ненулевой член. Значит, существует пара индексов i < j, для которой:

gamma=langle A v_i, A v_j rangle ne 0.

Применим к паре (v_i, v_j) нашу двумерную лемму: найдем угол theta_*=-varphi/2, при котором образы повернутых векторов становятся строго ортогональными:

langle A v'_i, A v'_j rangle=0.

Сформируем новый базис mathcal{V}', заменив в mathcal{V}_* векторы v_i, v_j на повернутые v'_i, v'_j, а остальные n-2 вектора оставив без изменений. Базис mathcal{V}' остается ортонормированным.

Что произошло со значением Phi(mathcal{V}')?

  1. Вклады всех пар, не содержащих i и j, не изменились.

  2. Для каждого k ne i, j сумма вкладов двух пар сохранилась благодаря доказанному ранее тождеству:

langle A v'_i, A v_k rangle^2 + langle A v'_j, A v_k rangle^2=langle A v_i, A v_k rangle^2 + langle A v_j, A v_k rangle^2.

  1. Вклад самой пары (i, j) уменьшился с gamma^2 до 0.

Следовательно, суммарная неортогональность нового базиса равна точно:

Phi(mathcal{V}')=Phi(mathcal{V}_*) - gamma^2=mu - gamma^2.

Но так как gamma ne 0, мы получаем:

Phi(mathcal{V}') < mu.

Мы построили ортонормированный базис mathcal{V}', значение функционала на котором строго меньше точной нижней грани mu. Полученное противоречие опровергает предположение mu > 0.

Значит:

mu=0.

А раз минимум равен нулю и достигается на базисе mathcal{V}_*, то:

Phi(mathcal{V}_*)=sum_{1 le i < j le n} langle A v_i, A v_j rangle^2=0.

Поскольку все слагаемые неотрицательны, каждое из них обязано быть нулем:

langle A v_i, A v_j rangle=0 quad text{для всех } 1 le i < j le n.

Образы векторов базиса mathcal{V}_* попарно ортогональны.


7. Сборка прямоугольного SVD

Теперь аккуратно соберем итоговые матрицы для любого прямоугольного размера m times n.

Пусть mathcal{V}_*=(v_1, dots, v_n) — найденный ортонормированный базис в mathbb{R}^n, образы которого попарно ортогональны. Некоторые из этих образов могут быть нулевыми (например, если матрица вырождена или n > m).

1. Упорядочение.

Перенумеруем векторы базиса так, чтобы длины их образов шли по невозрастанию:

|A v_1| ge |A v_2| ge dots ge |A v_r| > 0=|A v_{r+1}|=dots=|A v_n|.

Число ненулевых образов r в точности совпадает с размерностью пространства образов operatorname{im} A, то есть r=operatorname{rank} A le min(m, n). Если A=0, то r=0, и все образы нулевые. Если n=1, сумма Phi формально не содержит слагаемых и равна нулю сразу.

2. Сингулярные числа.

Положим для каждого i=1, dots, r:

sigma_i=|A v_i| > 0.

3. Базис выхода.

Определим первые r векторов в mathbb{R}^m простой нормировкой:

u_i=frac{A v_i}{sigma_i} quad (1 le i le r).

Так как образы A v_i попарно ортогональны, набор (u_1, dots, u_r) является ортонормированным в mathbb{R}^m. Дополним его любым стандартным способом (например, процессом Грама — Шмидта) до полного ортонормированного базиса (u_1, dots, u_m) пространства mathbb{R}^m. Заметим: если n > m, мы ни в коем случае не пытаемся строить векторы u для индексов больше m; выходное пространство строго m-мерно.

4. Матричная запись.

Составим матрицы:

V=begin{pmatrix} v_1 & v_2 & dots & v_n end{pmatrix} in mathbb{R}^{n times n}, qquad U=begin{pmatrix} u_1 & u_2 & dots & u_m end{pmatrix} in mathbb{R}^{m times m}.

Обе матрицы составлены из ортонормированных базисов, поэтому они ортогональны: V^T V=I_n, U^T U=I_m. Обратите внимание: матрицы могут иметь определитель −1 (содержать отражение), требование быть «чистыми» вращениями на них не накладывается.

Определим матрицу Sigma размера mtimes n: на позициях (i, i) при 1 le i le r запишем числа sigma_i, а все остальные её элементы положим равными нулю.

Проверим произведение A V: его i-й столбец равен A v_i. При i le r имеем A v_i=sigma_i u_i, а при i > r имеем A v_i=0. Но именно такие столбцы дает произведение U Sigma. Следовательно:

A V=U Sigma.

Умножая справа на V^T и учитывая, что V V^T=I_n, получаем:

A=U Sigma V^T.

Сингулярное разложение построено.


8. Исторический контекст и связь с вычислениями

Идея использовать функционал суммы квадратов неортогональности восходит к классическому методу вращений Якоби для диагонализации симметричных матриц.

В 1981 году математик Герберт Уилф (Herbert S. Wilf) опубликовал короткую двухстраничную заметку, в которой предложил доказывать спектральную теорему для симметричных матриц именно через глобальный минимум суммы квадратов внедиагональных элементов.

Связь этого доказательства с подходом Уилфа видна, если рассмотреть матрицу Грама системы векторов (A v_1, dots, A v_n):

G=V^T (A^T A) V.

Ее элементы — в точности скалярные произведения g_{ij}=langle A v_i, A v_j rangle. Внедиагональная сумма квадратов матрицы G равна:

operatorname{Od}(G)=sum_{i ne j} g_{ij}^2=2 sum_{1 le i < j le n} langle A v_i, A v_j rangle^2=2 Phi(mathcal{V}).

Уилф минимизировал operatorname{Od}(G) для произвольной симметричной матрицы. Мы же применили эту логику непосредственно к исходному отображению A, даже не формируя матрицу A^T A и не требуя предварительного знания спектральной теории.

С этим рассуждением связан практический численный алгоритм — односторонний метод Якоби для SVD (one-sided Jacobi SVD). В нём последовательно ортогонализуют пары столбцов матрицы AV, накапливая вращения в V. На практике итерации останавливают, когда скалярные произведения столбцов становятся достаточно малы относительно их норм.

Доказательство через минимум само по себе не устанавливает сходимость произвольного порядка вращений. Продуманные реализации метода могут особенно точно вычислять малые сингулярные числа; качество результата зависит от матрицы и реализации.

Например, документация LAPACK для DGESVJ отдельно оговаривает условия точности и критерий остановки [3].


Пример на Python

import numpy as np

A = np.array([[2.0, 1.0], [0.0, 1.0]])
x, y = A[:, 0], A[:, 1]
aa, bb = x @ x, y @ y
gamma = x @ y

# Выбираем один из корней уравнения <Av, Aw> = 0.
theta = 0.5 * np.arctan2(2.0 * gamma, aa - bb)
c, s = np.cos(theta), np.sin(theta)
V = np.array([[c, -s], [s, c]])
B = A @ V
sigma = np.linalg.norm(B, axis=0)
U = B / sigma  # В этом примере обе нормы ненулевые.

assert np.allclose(V.T @ V, np.eye(2), atol=1e-12)
assert np.isclose(B[:, 0] @ B[:, 1], 0.0, atol=1e-12)
assert np.isclose(np.linalg.norm(B, "fro"), np.linalg.norm(A, "fro"))
assert np.allclose(U.T @ U, np.eye(2), atol=1e-12)
assert np.allclose(A, U @ np.diag(sigma) @ V.T, atol=1e-12)

print(f"Угол: {np.degrees(theta):.6f} градусов")
print("Сингулярные числа:", np.round(sigma, 6))

Результат:

Угол: 31.717474 градусов
Сингулярные числа: [2.288246 0.874032]

Проверки подтверждают ортонормированность базисов, ортогональность образов, сохранение нормы Фробениуса и восстановление исходной матрицы.


Схема доказательства одним предложением

Существование минимизирующего базиса mathcal{V}_* implies инвариантность суммы квадратов скалярных произведений с третьими векторами при повороте пары implies строгое уменьшение Phi на gamma^2 при предположении mu > 0 implies mu=0 implies попарная ортогональность образов A v_i implies нормировка и получение A=U Sigma V^T.


Источники

  1. Herbert S. Wilf. An Algorithm-Inspired Proof of the Spectral Theorem in E^n. The American Mathematical Monthly, Vol. 88, No. 1 (1981), pp. 49–50. (PDF на странице автора)

  2. Robert van de Geijn, Margaret Myers. Advanced Linear Algebra: Foundations to Frontiers. §11.3.3, Jacobi’s method for computing the Singular Value Decomposition. (Материалы курса)

  3. LAPACK. Документация DGESVJ: односторонний метод Якоби, условия относительной точности и критерий остановки. (Описание процедуры)

Автор: master_program

Источник

  • Запись добавлена: 03.11.2026 в 07:31
  • Оставлено в