根据这篇文章
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));
或?感谢提前
答案 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))'
产生相同的答案。