奇异值

更新时间:2024-04-03 15:44

奇异值是矩阵里的概念,一般通过奇异值分解定理求得。设A为m*n阶矩阵,q=min(m,n),A*A的q个非负特征值的算术平方根叫作A的奇异值。奇异值分解是线性代数矩阵论中一种重要的矩阵分解法,适用于信号处理和统计学等领域。

分解定理

设给定,令并假设

(a)存在酉矩阵与,以及一个对角方阵

使得以及

(b)参数是的按照递减次序排列的非零特征值的正的平方根,它们与的按照递减次序排列的非零特征值的正的平方根是相同的。

定义

在奇异值分解定理中,矩阵的对角元素(即纯量,它们是方阵的对角元素),称为矩阵A的奇异值。A的奇异值由的特征值唯一地决定(等价地说,是由的特征值唯一地决定)。

A的奇异值的重数是作为的特征值的重数,或者,等价地说,也就是的特征值的重数。如果A的一个奇异值是且是(或)的单重特征值,则奇异值称为单重的。

奇异值与秩

矩阵A的等于它的非零奇异值的个数,而不小于它的非零特征值的个数。

定理及结论

(1)设,有相同的奇异值

(2)的两个平方的奇异值是:

(3)设给定一个无穷序列,并假设(逐个元素地收敛),又设,设以及分别是A与按非增次序排列的奇异值(对),那么,对每个都有

(4)设,其中,若A是满秩的,当且仅当它的所有奇异值都是正数。

Matlab函数

svd函数是Matlab中对矩阵进行奇异值分解的内置函数,用法如下:

s = svd(A) %返回矩阵A的按降序排列的奇异值

[U,S,V] = svd(A) %对A进行奇异值分解,A = U*S*V'

[U,S,V] = svd(A,'econ')

[U,S,V] = svd(A,0)

应用

奇异值分解法是线性代数矩阵论中一种重要的矩阵分解法,在信号处理、统计学等领域有重要应用。

下面以在数据分析中的降噪为例。

在现实生活中,我们搜集的数据中总是存在噪声:无论采用的设备多精密,方法有多好,总是会存在一些误差的。由于大的奇异值对应着矩阵中的主要信息,因此可以运用奇异值分解进行数据分析,提取矩阵的主要信息。

假如我们搜集的数据如下所示:

将数据用矩阵的形式表示:

经过奇异值分解后,得到:

由于第一个奇异值远比第二个要大,数据中有包含一些噪声,第二个奇异值在原始矩阵分解相对应的部分可以忽略。经过SVD分解后,保留了主要样本点如图1所示:

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}