首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >奇异值分解与低秩张量逼近

奇异值分解与低秩张量逼近
EN

Stack Overflow用户
提问于 2014-04-01 19:06:47
回答 1查看 968关注 0票数 0

根据这篇文章

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

矩阵可以用一阶矩阵逼近,我知道在matlab kronecker积中,函数是kron,现在假设我们有下面的矩阵。

代码语言:javascript
复制
a=[2 1 3;4 3 5]

a =

     2     1     3
     4     3     5

这个矩阵的SVD是

代码语言:javascript
复制
[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语言用张量近似重构原矩阵来实现算法,如何应用张量积?

代码语言:javascript
复制
X=kron(U(:,1),V(:,1));

或者?提前谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-01 20:55:09

我不太确定T的解释,但最接近矩阵的秩-1近似,实质上是两个占优势的奇异向量被奇异值放大的外积。

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

在MATLAB中,您可以这样做:

代码语言:javascript
复制
U(:,1)*E(1,1)*V(:,1)'

产生的结果:

代码语言:javascript
复制
ans =

    2.0752    1.4487    2.7017
    3.9606    2.7649    5.1563

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

代码语言:javascript
复制
(kron(U(:,1)',V(:,1))*E(1,1))'

得到同样的答案。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22794740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档