Linear Algebra(12):对称矩阵和SVD 2025.12.22 1 Categories / 1 Tags / 1.5k Words
Blog Post

Linear Algebra(12):对称矩阵和SVD

Linear Algebra(12):对称矩阵和SVD

线性代数

对称矩阵和矩阵的SVD分解

完美的对称矩阵

对称矩阵即矩阵的所有元素关于主对角线对称:

用数学表达对称矩阵:

为什么说对称矩阵是完美的?对称矩阵的特征值一定是实数(证略). 对称矩阵的多重特征值,其对应的特征空间的维度一定等于重数.对称矩阵的几何重数等于代数重数. 对称矩阵一定有n个线性无关的特征向量.

因此对称矩阵一定可以被对角化.

正交对角化

对称矩阵的所有不同的特征值对应的特征向量互相垂直.

假设矩阵A的两个特征向量v1,v2对应不同的特征值

对称矩阵一定可以被对角化:

如果A是对称矩阵,

此时的Q是标准正交矩阵,这个式子就是把A进行了正交对角化.

正交对角化就是在对角化的基础上保证P是一个标准正交矩阵,写成字母Q.

如果A可以被正交对角化,则A一定是对称矩阵.

因此:

这个结论也叫做谱定理.

奇异值

前面讨论的特征值、特征向量、相似型、对角化、对称矩阵、正交对角化都是基于方阵的。 但实际处理的数据很多是非方阵,对于每一个非方阵来说,我们都可以找到一个对称矩阵和它对应.

如果A是一个m*n的矩阵,则 是一个n*n 的方阵,且对称.

因此 是对称矩阵.

可以被正交对角化,拥有n个实数特征值,n个互相垂直的标准特征向量.

下面式子:

这个式子说明每一个 都可以表示成一个上面向量模的平方,因此 的特征值>=0 .将 称为奇异值(Singular Value).

奇异值就是 的长度.

是A的列空间的一组正交基, .

证明正交性:

证明 是A的列空间的一组基:

image-20251222015249654

如果A有r个不为零的奇异值, 是A的列空间的一组正交基. A的列空间维度为r,rank(A)=r.

是A的列空间的一组标准正交基.

通常把奇异值从大到小排序,把 的奇异值丢掉.

奇异值的SVD分解

矩阵的SVD分解-Singular Value Decomposition , 即矩阵的奇异值分解. 对任意形状的矩阵都适用.

如果A是m*n的矩阵,U是m*m 的矩阵; 是m*n 的矩阵(奇异值矩阵);V是n*n的矩阵.

V是 的特征向量矩阵进行标准化,U和V都是标准正交矩阵.

image-20251222020721843

证明:

image-20251222021017438

具体流程:

  • 求解 的特征值和特征向量
  • 非零特征值开根后(奇异值)得到m*n的 ,奇异值从大到小排序
  • 特征向量标准化后得到n*n的V
  • 在经过Gram-Schmidt扩展得到m*m的U

SVD代码示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import numpy as np
from scipy.linalg import svd


if __name__ == "__main__":

A = np.array([[1, 2],
[3, 4],
[5, 6]])
U, s, VT = svd(A)
print(U)
print(s)
print(VT)
print()


Sigma = np.zeros(A.shape)
for i in range(len(s)):
Sigma[i][i] = s[i]
print(Sigma)
print(U.dot(Sigma).dot(VT))

image-20251222021624616

SVD分解的应用

第一个应用是将矩阵A看作是一个变换. 如果A是一个m*n矩阵,A只能对n维向量做变换.

image-20251222022638372

列视角看待A,把矩阵A看成一片数据:

image-20251222023729360

可以用来压缩、去噪、降维.

Copyright

Article Copyright

Author
sukiame
Link
https://sukiame.cn/2025/12/22/p41-对称矩阵和SVD/
Notice
Unless otherwise stated, this article is licensed under CC BY-NC-SA 4.0 . Please keep the original link when reusing.
Link copied to clipboard.