【Math】奇异值分解(SVD)详解及 Python 实现

1. 什么是奇异值分解(SVD)

奇异值分解(Singular Value Decomposition,简称 SVD)是矩阵分解的一种方法,它将任意矩阵 AAA 分解为三个矩阵的乘积:

A=UΣVT A = U \Sigma V^T A=UΣVT

其中:

  • AAAm×nm \times nm×n 的矩阵。
  • UUUm×mm \times mm×m 的酉矩阵,包含 AATA A^TAAT 的特征向量。
  • Σ\SigmaΣ 是一个 m×nm \times nm×n 的对角矩阵,包含矩阵 AAA 的奇异值。
  • VTV^TVTn×nn \times nn×n 的酉矩阵,包含 ATAA^T AATA 的特征向量。

奇异值分解不仅适用于方阵,也适用于任意矩阵。它在信号处理、图像压缩、降维和推荐系统等应用中有着广泛的应用。

2. 计算步骤

步骤 1:计算 AATA A^TAATATAA^T AATA

首先,我们计算矩阵 AATA A^TAATATAA^T AATA

  • AATA A^TAAT 是一个 m×mm \times mm×m 的对称矩阵;
  • ATAA^T AATA 是一个 n×nn \times nn×n 的对称矩阵。

步骤 2:求解特征值和特征向量

  • AATA A^TAAT 求特征值和特征向量:矩阵 AATA A^TAAT 的特征向量构成了矩阵 UUU,它的特征值的平方根是矩阵 AAA 的奇异值。

  • ATAA^T AATA 求特征值和特征向量:矩阵 ATAA^T AATA 的特征向量构成了矩阵 VVV,它的特征值的平方根同样是矩阵 AAA 的奇异值。

步骤 3:构建矩阵 UUUΣ\SigmaΣVTV^TVT

  • UUU 是由 AATA A^TAAT 的特征向量构成的矩阵。
  • Σ\Sigma
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值