主要内容

奇异值分解

奇异值分解表示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这是给予的