| Следующая версия | Предыдущая версия |
| math:t2-11 [2023/05/11 07:29] – создано root | math:t2-11 [2023/05/11 07:31] (текущий) – [Полярное разложение] root |
|---|
| числа оператора $A^{*}A$ называют **сингулярным числом** оператора | числа оператора $A^{*}A$ называют **сингулярным числом** оператора |
| $A$. | $A$. |
| | |
| | ==== Сингулярное разложение ==== |
| |
| //Определение.// Сингулярное разложение (SVD) для матрицы $A$ | //Определение.// Сингулярное разложение (SVD) для матрицы $A$ |
| Для произвольной матрицы $A$ размера $m\times n$ сингулярное разложение | Для произвольной матрицы $A$ размера $m\times n$ сингулярное разложение |
| строится следующим образом: | строится следующим образом: |
| - Элемент нумерованного списка | * Элемент нумерованного списка |
| - Вычислить матрицу $A^{\dagger}\cdot A$ размера $n\times n$. | * Вычислить матрицу $A^{\dagger}\cdot A$ размера $n\times n$. |
| - Найти собственные значения и собственные векторы матрицы $A^{\dagger}\cdot A.$ Пусть собственные значения будут $\lambda_{1},\lambda_{2},...,\lambda_{k},$ где $k=\text{min}(m,n),$ а соответствующие им собственные векторы будут $v_{1},v_{2},...,v_{k}.$ | * Найти собственные значения и собственные векторы матрицы $A^{\dagger}\cdot A.$ Пусть собственные значения будут $\lambda_{1},\lambda_{2},...,\lambda_{k},$ где $k=\text{min}(m,n),$ а соответствующие им собственные векторы будут $v_{1},v_{2},...,v_{k}.$ |
| - Нормализовать каждый из векторов $v_{i}$ так, чтобы его длина была равна 1: $v_{i}'=\frac{v_{i}}{|v_{i}|},$ где $|v_{i}|$ --- длина вектора $v_{i}.$ | * Нормализовать каждый из векторов $v_{i}$ так, чтобы его длина была равна 1: $v_{i}'=\frac{v_{i}}{|v_{i}|},$ где $|v_{i}|$ --- длина вектора $v_{i}.$ |
| - Сформировать матрицу $V$ размера $n\times k,$ состоящую из найденных собственных векторов $v'_{1},v'_{2},...,v'_{k}$. Если $k<n,$ то дополнить базис ортонормированными векторами $v'_{k+1},v'_{k+2},...,v'_{n}$. Построить из векторов $v'_{1},v'_{2},...,v'_{n}$ матрицу $V.$ Транспонированием и сопряжением матрицы $V$ построить $V^{\dagger}$. | * Сформировать матрицу $V$ размера $n\times k,$ состоящую из найденных собственных векторов $v'_{1},v'_{2},...,v'_{k}$. Если $k<n,$ то дополнить базис ортонормированными векторами $v'_{k+1},v'_{k+2},...,v'_{n}$. Построить из векторов $v'_{1},v'_{2},...,v'_{n}$ матрицу $V.$ Транспонированием и сопряжением матрицы $V$ построить $V^{\dagger}$. |
| - Найти сингулярные числа матрицы $A$ как корни из найденных собственных значений матрицы $A^{\dagger}\cdot A$: $\sigma_{i}=\sqrt{\lambda_{i}},$ где $i=1,\ldots,k.$ Сформировать диагональную матрицу $\Sigma$ размера $m\times n$ состоящую из найденных сингулярных значений $\sigma_{1}\geqslant\sigma_{2}\geqslant...\geqslant\sigma_{k}.$ Причём, если $m<n,$ то | * Найти сингулярные числа матрицы $A$ как корни из найденных собственных значений матрицы $A^{\dagger}\cdot A$: $\sigma_{i}=\sqrt{\lambda_{i}},$ где $i=1,\ldots,k.$ Сформировать диагональную матрицу $\Sigma$ размера $m\times n$ состоящую из найденных сингулярных значений $\sigma_{1}\geqslant\sigma_{2}\geqslant...\geqslant\sigma_{k}.$ Причём, если $m<n,$ то |
| $$\Sigma=\left(\begin{array}{cccccc} | $$\Sigma=\left(\begin{array}{cccccc} |
| \sigma_{1} & 0 & \cdots & 0 & \cdots & 0\\ | \sigma_{1} & 0 & \cdots & 0 & \cdots & 0\\ |
| 0 & 0 & \cdots & 0 | 0 & 0 & \cdots & 0 |
| \end{array}\right).$$ | \end{array}\right).$$ |
| - Построить вектора $u_{i}=\frac{1}{\sigma_{i}}Av'_{i}$. Если $m>n,$ то дополнить базис ортонормированными векторами $u_{n+1},...,u_{m}$. Построить из векторов $u_{1},...,u_{m}$ матрицу $U.$ | * Построить вектора $u_{i}=\frac{1}{\sigma_{i}}Av'_{i}$. Если $m>n,$ то дополнить базис ортонормированными векторами $u_{n+1},...,u_{m}$. Построить из векторов $u_{1},...,u_{m}$ матрицу $U.$ |
| - Таким образом, сингулярное разложение матрицы $A$ может быть представлено в виде $A=U\cdot\Sigma\cdot V^{\dagger}.$ Матрица $U$ будет ортогональной и размера $m\times n,$ матрица $\Sigma$ будет диагональной и размера $m\times n$, а матрица $V^{\dagger}$ будет ортогональной и размера $n\times n$. | * Таким образом, сингулярное разложение матрицы $A$ может быть представлено в виде $A=U\cdot\Sigma\cdot V^{\dagger}.$ Матрица $U$ будет ортогональной и размера $m\times n,$ матрица $\Sigma$ будет диагональной и размера $m\times n$, а матрица $V^{\dagger}$ будет ортогональной и размера $n\times n$. |
| |
| ==== Полярное разложение ==== | ==== Полярное разложение ==== |
| Алгоритм нахождения левого полярного разложения. | Алгоритм нахождения левого полярного разложения. |
| |
| - Составляем матрицу $AA^{*}$. | * Составляем матрицу $AA^{*}$. |
| - Вычисляем $P=\sqrt{AA^{*}}$, для этого сначала | * Вычисляем $P=\sqrt{AA^{*}}$, для этого сначала находим спектр $AA^{*}$ в виде $\lambda_{1},\ldots,\lambda_{m}$; |
| * Элемент ненумерованного списка-- находим спектр $AA^{*}$ в виде $\lambda_{1},\ldots,\lambda_{m}$; | |
| * находим ОНБ из собственных векторов, в котором $AA^{*}$ имеет диагональный вид $D$, $T$ --- матрица перехода к этому базису; | * находим ОНБ из собственных векторов, в котором $AA^{*}$ имеет диагональный вид $D$, $T$ --- матрица перехода к этому базису; |
| * вычисляем $P=T\sqrt{D}T^{-1}$. | * вычисляем $P=T\sqrt{D}T^{-1}$. |
| - ищем матрицу $V$ такую, чтобы $A=PV$. Если $\det A\neq0$, то $V=P^{-1}A.$ | * ищем матрицу $V$ такую, чтобы $A=PV$. Если $\det A\neq0$, то $V=P^{-1}A.$ |
| |
| Алгоритм нахождения правого полярного разложения получается из алгоритма | Алгоритм нахождения правого полярного разложения получается из алгоритма |