矩阵奇异值分解计算步骤及简单例子

保姆级矩阵奇异值分解讲解,看完就会!(前提:具有基本线性代数基础)

矩阵的奇异值分解(SVD分解)

总结了九个步骤来完成。(以下计算中一般只写到3,若有兴趣读者可自行推导到n的情况。例如特征值只写到\lambda _{1}\lambda _{2}\lambda _{3},其实是可以写到\lambda _{n}

对矩阵A_{m\times n}进行奇异值分解:

1、计算A^{T}A

方法:矩阵的乘法,要点:略

2、计算A^{T}A的特征值

方法:|\lambda E - A^{T}A|=0令行列式的值为0计算\lambda的值。重根按重根记。\lambda _{1}\lambda _{2}\lambda _{3}

3、计算A^{T}A对应各特征值的特征向量

方法:求(\lambda E - A^{T}A)x=0的非零解,有几个特征值就有几个特征向量。\xi _{1}\xi _{2}\xi _{3}

4、将特征向量施密特正交化

方法:令\beta _{1}=\alpha _{1}\beta _{2}=\alpha _{2}-\frac{\left ( \beta _{1},\alpha _{2} \right )}{\left ( \beta _{1},\beta _{1} \right )}\beta _{1}\beta _{3}=\alpha _{3}-\frac{\left ( \beta _{1},\alpha _{3} \right )}{\left ( \beta _{1},\beta _{1} \right )}\beta _{1}-\frac{\left ( \beta _{2},\alpha _{3} \right )}{\left ( \beta _{2},\beta _{2} \right )}\beta _{2}

其中\alpha _{1}\alpha _{2}\alpha _{3}均为已求出的特征向量。

5、将特征值与对应特征向量按从大到小的顺序排好

方法:略,注意好对应,别对差了。

6、构建V与D矩阵并由D构建\Sigma矩阵

方法:V=\left ( v_{1},v_{2},v_{3} \right )

这里的v_{1},v_{2},v_{3}对应步骤3中的\xi _{1},\xi _{2},\xi _{3}

D=\begin{bmatrix} \sqrt{\lambda _{1}} & & \\ & \sqrt{\lambda _{2}} & \\ & &\sqrt{\lambda _{3}} \end{bmatrix}_{r\times r}

r为特征值的非零个数,若\lambda _{k}=0,则不填入D中;

\Sigma =\begin{bmatrix} D_{r\times r} & 0\\ 0 & 0 \end{bmatrix}_{m\times n}

7、构造前r个标准正交向量\mu _{1},\mu _{2},\cdots \cdots

方法:\mu _{i}=\frac{1}{\sigma _{i}}Av_{i},其中\sigma _{i}=\sqrt{\lambda _{i}}代表奇异值。

8、将构造的标准正交向量u_{i},按照标准正交基扩充的方法,扩充到m维向量空间,

组成\mu _{1},\mu _{2},\cdots \cdots ,\mu _{r},b_{1},b_{2},\cdots \cdots ,b_{m-r},组成新的正交矩阵U_{m\times m}

方法:求\left ( \mu _{i} \right )^{T}x=0的基础解系,并把基础解系施密特正交化,再与原\mu _{i}结合即可形成U_{m\times m}

9、写出答案

方法:A=U\Sigma V^{T}

注意V要转置

举个简单例子:

求:矩阵A=\begin{pmatrix} 1 & -1\\ -2 & 2\\ 2 &-2 \end{pmatrix}_{3\times 2}的奇异值分解

1、A^{T}A=\begin{pmatrix} 9 & -9\\ -9 & 9 \end{pmatrix}

2、特征值为:\lambda _{1}=18,\lambda _{2}=0

3、对应特征向量为:v_{1}=\begin{pmatrix} \frac{1}{\sqrt{2}}\\ -\frac{1}{\sqrt{2}} \end{pmatrix}v_{2}=\begin{pmatrix} \frac{1}{\sqrt{2}}\\ \frac{1}{\sqrt{2}} \end{pmatrix}

4、步骤3已完成标准化

5、步骤2、3已完成排序和对应关系

6、构建V与\Sigma矩阵

V=\left ( v_{1},v_{2} \right )=\begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}}\\ -\frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \end{pmatrix}

\Sigma =\begin{pmatrix} 3\sqrt{2} & 0\\ 0 & 0\\ 0 & 0 \end{pmatrix}

7、构造前1个标准正交向量\mu _{1}

\mu _{1}=\frac{1}{\sigma _{1}}Av_{1}=\frac{1}{3\sqrt{2}}Av_{1}=\begin{pmatrix} \frac{1}{3}\\ -\frac{2}{3}\\ \frac{2}{3} \end{pmatrix}

8、将\mu _{1}扩充到\mathbb{R}^{3}的向量空间

\mu _{2}=b_{1}=\begin{pmatrix} \frac{2}{\sqrt{5}}\\ \frac{1}{\sqrt{5}}\\ 0 \end{pmatrix}

\mu _{3}=b_{2}=\begin{pmatrix} -\frac{2}{\sqrt{45}}\\ \frac{4}{\sqrt{45}}\\ \frac{5}{\sqrt{45}} \end{pmatrix}

U=\left ( \mu _{1},\mu _{2},\mu _{3} \right )=\begin{pmatrix} \frac{1}{3} & \frac{2}{\sqrt{5}} & -\frac{2}{\sqrt{45}}\\ -\frac{2}{3} & \frac{1}{\sqrt{5}} & \frac{4}{\sqrt{45}}\\ \frac{2}{3} & 0 & \frac{5}{\sqrt{45}} \end{pmatrix}

9、写出答案

A=U\Sigma V^{T}=\begin{pmatrix} \frac{1}{3} & \frac{2}{\sqrt{5}} & -\frac{2}{\sqrt{45}}\\ -\frac{2}{3} & \frac{1}{\sqrt{5}} & \frac{4}{\sqrt{45}}\\ \frac{2}{3} & 0 & \frac{5}{\sqrt{45}} \end{pmatrix}\begin{pmatrix} 3\sqrt{2} & 0\\ 0 & 0\\ 0 & 0 \end{pmatrix}\begin{pmatrix} \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}}\\ \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \end{pmatrix}

好了,例子也写完了,希望对看到这里的你有所帮助!

再多提一嘴,奇异值就是特征值的平方根值。

这是我第一次写博文,如果你觉得我写的对你有帮助,欢迎点赞收藏关注!

共同进步!

  • 18
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
假设我们有一个矩阵 A,其大小为 4x3(4行3列): ``` A = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]] ``` 我们可以对 A 进行奇异值分解(Singular Value Decomposition,简称 SVD),将其分解成三个矩阵的乘积: ``` A = UΣV^T ``` 其中 U 和 V 为正交矩阵,Σ 为对角矩阵,对角线上的元素称为奇异值。具体来说,我们可以按照以下步骤进行奇异值分解: 1. 出 A 的转置矩阵 AT 与 A 的乘积 AA^T: ``` AT = [[1, 4, 7, 10], [2, 5, 8, 11], [3, 6, 9, 12]] AA^T = [[14, 32, 50], [32, 77, 122], [50, 122, 194]] ``` 2. 对 AA^T 进行特征值分解,出其特征值 λ1=246.9、λ2=0.1、λ3=0,以及对应的特征向量 u1=[-0.229, -0.524, -0.819]、u2=[-0.883, 0.367, 0.284]、u3=[-0.408, 0.707, -0.577]。 3. 对特征向量进行单位化,得到正交矩阵 U: ``` U = [[-0.229, -0.524, -0.819], [-0.524, 0.789, -0.321], [-0.819, -0.321, 0.476]] ``` 4. 出 A^T 与 A 的乘积 A^TA: ``` A^T = [[1, 4, 7, 10], [2, 5, 8, 11], [3, 6, 9, 12]] A^TA = [[166, 188, 210], [188, 214, 240], [210, 240, 270]] ``` 5. 对 A^TA 进行特征值分解,出其特征值 σ1=14.0、σ2=0.3、σ3=0,以及对应的特征向量 v1=[-0.438, -0.690, -0.577]、v2=[-0.690, 0.537, -0.484]、v3=[-0.577, -0.484, 0.658]。 6. 对特征向量进行单位化,得到正交矩阵 V: ``` V = [[-0.438, -0.690, -0.577], [-0.690, 0.537, -0.484], [-0.577, -0.484, 0.658]] ``` 7. 将特征值构成对角矩阵Σ: ``` Σ = [[3.7, 0, 0], [0, 0.55, 0], [0, 0, 0]] ``` 8. 将 U、Σ、V 带入 SVD 的公式中: ``` A = UΣV^T = [[-0.229, -0.524, -0.819], [-0.524, 0.789, -0.321], [-0.819, -0.321, 0.476]] * [[3.7, 0, 0], [0, 0.55, 0], [0, 0, 0]] * [[-0.438, -0.690, -0.577], [-0.690, 0.537, -0.484], [-0.577, -0.484, 0.658]]^T ``` 其中 V^T 表示 V 的转置矩阵,由于 V 是一个正交矩阵,因此 V^T 等于 V 的逆矩阵。 这样,我们就完成了对矩阵 A 的奇异值分解。通过 SVD,我们得到了三个矩阵 U、Σ、V,它们的乘积等于原始矩阵 A。其中,U 和 V 是正交矩阵,Σ 是对角矩阵,对角线上的元素称为奇异值。在实际应用中,SVD 可以用来压缩数据、降维、去噪等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不冰微糖K

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值