圣言会

奇异值分解

描述

例子

年代= SVD(一个)返回奇异值矩阵的一个按降序排列。

例子

(U,年代,V)=圣言(一个)执行矩阵的奇异值分解一个,这样一个= U * * V '

例子

(U,年代,V)=圣言(一个“经济学”)产生经济规模分解-通过-n矩阵一个:

  • m > n-只有第一个nU计算,年代n-通过-n

  • m = n- - - - - -SVD(A, '经济舱')相当于圣言(A)

  • M -只有第一个V计算,年代-通过-

经济规模分解从奇异值对角矩阵中去除额外的零行或零列,年代,以及其中的列U要么V该乘法中表达的那些零一个= U * * V '。删除这些零和列可以提高执行时间并减少存储需求,而不会影响分解的准确性。

例子

(U,年代,V)=圣言(一个,0)产生的一个不同的经济尺寸分解-通过-n矩阵一个:

  • m > n- - - - - -圣言(0)相当于SVD(A, '经济舱')

  • m < = n- - - - - -圣言(0)相当于圣言(A)

例子

全部折叠

计算一个满秩矩阵的奇异值。

A = [1 0 1;-1 -2 0;0 1 -1]
一个=3×31 0 1 -1 -2 0 0 1 -1
S = SVD(A)
S =3×12.4605 1.6996 0.2391

找到矩形矩阵的奇异值分解一个

A = [12];3 4;5 6;7 8]
一个=4×21 2 3 4 5 6 7 8
[U, V] =圣言(A)
U =4×4-0.1525 -0.8226 -0.3945 -0.3800 -0.3499 -0.4214 0.2428 0.8007 -0.5474 -0.0201 0.6979 -0.4614 -0.7448 0.3812 -0.5462 0.0407
S =4×214.2691 0 0 0 6268 0 0 0 0 0 0
V =2×20.6414 0.7672 - 7672 -0.6414

确定的关系一个= U * * V ',机器精度内。

U * S * V”
ans =4×21.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000

计算矩形矩阵充分和经济规模分解。

A = [12];3 4;5 6;7 8]
一个=4×21 2 3 4 5 6 7 8
[U, V] =圣言(A)
U =4×4-0.1525 -0.8226 -0.3945 -0.3800 -0.3499 -0.4214 0.2428 0.8007 -0.5474 -0.0201 0.6979 -0.4614 -0.7448 0.3812 -0.5462 0.0407
S =4×214.2691 0 0 0 6268 0 0 0 0 0 0
V =2×20.6414 0.7672 - 7672 -0.6414
(U, V) =圣言(,“经济学”)
U =4×2-0.1525 -0.8226 - 3499 -0.4214 -0.5474 -0.0201 -0.7448 0.3812
S =2×214.2691 0 0 0.6268
V =2×20.6414 0.7672 - 7672 -0.6414

以来一个是4乘2,SVD(A, '经济舱')返回更少的列U少排在年代与完全分解相比。额外的零行年代与?中的对应列一起被排除U它会和表达式中的0相乘一个= U * * V '

利用奇异值分解的结果来确定矩阵的秩、列空间和零空间。

A = [20 0 2;0 1 0;0 0 0)
一个=3×32 0 2 0 1 0 0 0 0
[U, V] =圣言(A)
U =3×31 0 0 0 1 0 0 0 1
S =3×32.8284 000 1.0000 0000 000
V =3×30.7071 0 -0.7071 0 1.0000 0 0.7071 0 0.7071

计算使用非零奇异值的数量的秩。

s =诊断接头(年代);rank_A = nnz (s)
rank_A = 2

的列空间计算一个标准正交基一个使用的列U对应于非零奇异值。

column_basis = U(:逻辑(s))
column_basis =3×21 0 0 1 0 0

的零空间的标准正交基一个使用的列V对应于奇异值等于0。

null_basis = V(:,〜S)
null_basis =3×1-0.7071 0 0.7071

的函数排名,奥尔特空值提供计算这些量的方便方法。

输入参数

全部折叠

输入矩阵。一个大小可以是正方形或长方形。

数据类型:|
复数的支持:万博1manbetx是的

输出参数

全部折叠

奇异值,作为列向量返回。奇异值是非负的实数,按递减顺序排列。

左奇异向量,作为矩阵的列返回。

  • 对于一个-通过-n矩阵一个m > n,经济规模的分解SVD(A, '经济舱')圣言(0)只计算第一个nU。在这种情况下,列U是正交的,U是一个-通过-n矩阵满足 U H U = n

  • 完全分解,圣言(A)返回U作为-通过-酉矩阵满足 U U H = U H U = 。的列U对应于非零奇异值形成的范围的一组标准正交基向量一个

不同的机器和MATLAB的版本®可以产生不同的奇异向量,仍然是精确的数字。对应的列UV可翻转自己的招牌,因为这不影响表达式的值一个= U * * V '

奇异值,作为对角矩阵返回。的对角元素年代是降序非负奇异值。的大小年代如下:

  • 对于一个-通过-n矩阵一个,经济规模的分解SVD(A, '经济舱')返回年代作为一个方阵分钟([M,N])

  • 完全分解,圣言(A)返回年代与尺寸相同的一个

  • 如果m > n,然后圣言(0)返回年代作为一个方阵分钟([M,N])

  • 如果M ,然后圣言(0)返回年代与尺寸相同的一个

右奇异向量,返回一个矩阵的列。

  • 对于一个-通过-n矩阵一个M ,经济分解SVD(A, '经济舱')只计算第一个V。在这种情况下,列V是正交的,V是一个n-通过-矩阵满足 V H V =

  • 完全分解,圣言(A)返回V作为n-通过-n酉矩阵满足 V V H = V H V = n 。的列V对应的非零奇异值构成的零空间的一组标准正交基向量一个

不同的机器和MATLAB的释放可以产生不同的奇异向量仍然是数值精确的。对应的列UV可翻转自己的招牌,因为这不影响表达式的值一个= U * * V '

扩展功能

R2006a前推出