奇异值分解
奇异值分解表示m
-经过-n
矩阵一个
作为a = u*s*v'
。这里,s
是一个m
-经过-n
对角矩阵,具有单数值一个
在对角线上。列m
-经过-m
矩阵你
是相应奇异值的左单数矢量。列n
-经过-n
矩阵v
是相应奇异值的正确单数向量。v'
是Hermitian转置(转置的复合物)v
。
要计算矩阵的奇异值分解,请使用SVD
。此函数使您可以在一个函数调用中分别计算矩阵的单数值或单数值和单数向量。要仅计算单数值,请使用SVD
没有输出参数
SVD(A)
或一个输出参数
S = SVD(A)
要计算矩阵的奇异值和奇异向量,请使用三个输出参数:
[u,s,v] = svd(a)
SVD
返回两个统一矩阵,你
和v
,其列是奇异向量。它还返回对角线矩阵,s
,在其对角线上包含奇异值。所有三个矩阵的元素都是浮点数。计算的准确性取决于当前设置数字
。
创建n
-经过-n
矩阵一个
带有由a(i,j)= 1/(i -j + 1/2)
。生成此矩阵的最明显方法是
n = 3;对于i = 1:n表示j = 1:n a(i,j)= sym(1/(i-j+1/2));结尾
为了n = 3
,矩阵是
一个
a = [2,-2,-2/3] [2/3,2,-2] [2/5,2/3,2]
计算此矩阵的奇异值。如果您使用SVD
直接,它将返回确切的符号结果。对于此矩阵,结果非常长。如果您喜欢较短的数字结果,请转换一个
使用浮点数使用VPA
。然后使用SVD
使用可变精确算术计算此矩阵的奇异值:
S = SVD(VPA(A))
s = 3.1387302525015353960741348953506 3.01074259750274627462353291981598225 1.605345678345454441725888396597888888880522
现在,计算奇异值和奇异向量一个
:
[u,s,v] = svd(a)
U = [ 0.53254331027335338470683368360204, 0.76576895948802052989304092179952,... 0.36054891952096214791189887728353] [ -0.82525689650849463222502853672224, 0.37514965283965451993171338605042,... 0.42215375485651489522488031917364] [ 0.18801243961043281839917114171742, -0.52236064041897439447429784257224,... 0.83173955292075192178421874331406] S = [ 3.1387302525015353960741348953506, 0,... 0] [ 0, 3.0107425975027462353291981598225,... 0] [ 0, 0,... 1.6053456783345441725883965978052] V = [ 0.18801243961043281839917114171742, 0.52236064041897439447429784257224,... 0.83173955292075192178421874331406] [ -0.82525689650849463222502853672224, -0.37514965283965451993171338605042,... 0.42215375485651489522488031917364] [ 0.53254331027335338470683368360204, -0.76576895948802052989304092179952,... 0.36054891952096214791189887728353这是给予的