奇异值分解和低秩张量近似

时间:2014-04-01 19:06:48

标签: matlab matrix approximation

根据这篇文章

http://www.wseas.us/e-library/conferences/2012/Vouliagmeni/MMAS/MMAS-07.pdf

矩阵可以使用张量近似来近似一个秩矩阵,我知道在matlab中kronecker乘积与张量积相同,函数是kron,现在让我们假设我们有跟随矩阵

a=[2 1 3;4 3 5]

a =

     2     1     3
     4     3     5

该矩阵的SVD是

[U E V]=svd(a)

U =

   -0.4641   -0.8858
   -0.8858    0.4641


E =

    7.9764         0         0
         0    0.6142         0


V =

   -0.5606    0.1382   -0.8165
   -0.3913    0.8247    0.4082
   -0.7298   -0.5484    0.4082

请帮我用matlab语言实现使用张量近似重构原始矩阵的算法,如何应用张量积?这样

X=kron(U(:,1),V(:,1));

或?感谢提前

1 个答案:

答案 0 :(得分:2)

我对Tensorial解释不太确定,但是对矩阵的最接近的秩-1近似基本上是由奇异值放大的两个主要奇异向量的外积。

简单来说,如果[U E V] = svd(X),那么与X最接近的等级-1近似值是第一个奇异向量乘以第一个奇异值的外积。

在MATLAB中,你可以这样做:

U(:,1)*E(1,1)*V(:,1)'

哪个收益率:

ans =

    2.0752    1.4487    2.7017
    3.9606    2.7649    5.1563

另外,从数学上讲,行向量和列向量的kronecker乘积基本上是它们的外积。所以,你可以使用Kronecker产品做同样的事情:

(kron(U(:,1)',V(:,1))*E(1,1))'

产生相同的答案。