概述
简单说一个矩阵svd分解就是变成三个矩阵的乘积比如:
$
A = \begin{bmatrix}
1 & -2 \
1 & 2 \
\end{bmatrix}
=\begin{bmatrix}
-0.707 & -0.707 \
0.707 & -0.707 \
\end{bmatrix}
\begin{bmatrix}
2.828 & 0 \
0 & 1.4142 \
\end{bmatrix}
\begin{bmatrix}
0 & -1 \
1 & 0 \
\end{bmatrix}
\triangleq
USV
$
奇异值是2.828和1.4142
- U,V都是正交矩阵
图形化生动理解
##1. 准备工作
奇异值分解实际上把矩阵的变换分为了三部分:
- 旋转
- 拉伸
- 投影(方阵没有投影不影响)
为了图形化理解我们对USV
拆成两个矩阵相加, M, N可以理解成A的两个分量
$
A
= \begin{bmatrix}
-0.707 & -0.707 \
0.707 & -0.707 \
\end{bmatrix}
\begin{bmatrix}
2.828 & 0 \
0 & 0 \
\end{bmatrix}
\begin{bmatrix}
0 & -1 \
1 & 0 \
\end{bmatrix}+
\begin{bmatrix}
-0.707 & -0.707 \
0.707 & -0.707 \
\end{bmatrix}
\begin{bmatrix}
0 & 0 \
0 & 1.4142 \
\end{bmatrix}
\begin{bmatrix}
0 & -1 \
1 & 0 \
\end{bmatrix}
$
$
=\begin{bmatrix}
0 & -2 \
0 & 2 \
\end{bmatrix}+
\begin{bmatrix}
1 & 0 \
1 & 0 \
\end{bmatrix}
\triangleq
M + N
$
##2. 图形化解释
1.首先我们看一下一个单位圆x
乘以A
会发生什么
Ax
2. Mx
3. Nx
那么USV又代表了什么呢?
- V,
Vx
- S—拉伸,
SVx
拉伸的程度就是那两个奇异值,也就是椭圆的长轴和短轴
- U—旋转,
附录
##1. 动图matlab代码
A = [1 -2;
1 2;];
a = [0 -2;
0 2;];
b = [1 0;
1 0;];
eigshow(U*S*V);
[U,S,V] = svd(A)
S1 = [2.828 0;
0 0;];
S2 = [0 0;
0 1.414;];