您的位置:首页 > 其它

对角阵的SVD分解结果U一定等于V吗?

2010-08-27 19:38 183 查看
到这个博客为止,我一直认为如果K是一个对称阵,那么K的svd分解:

[U,S,V]=svd(K)

U和V是肯定相同的。例如:

K=

0.1590 0.2108 0.3175

0.2108 1.1254 1.1389

0.3175 1.1389 1.5209

其svd分解为:

>> [U,S,V]=svd(K)

U =

-0.1572 0.4260 -0.8910

-0.6336 -0.7355 -0.2399

-0.7575 0.5268 0.3855

S =

2.5393 0 0

0 0.1876 0

0 0 0.0783

V =

-0.1572 0.4260 -0.8910

-0.6336 -0.7355 -0.2399

-0.7575 0.5268 0.3855

可以看出U和V完全相同。但是现在我发现这个常识不对,也就是说对称阵的SVD分解后U和V不一定相同,例如:

K =

0 0 0.3175

0 0 1.1389

0.3175 1.1389 0

其svd分解为:

[U,S,V]=svd(K)

U =

0 0.2686 -0.9633

0 0.9633 0.2686

-1.0000 0 0

S =

1.1823 0 0

0 1.1823 0

0 0 0

V =

-0.2686 0 -0.9633

-0.9633 0 0.2686

0 1.0000 0

可以看出U和V不同。为什么这样,这个要去查书才知道,这里我发现有一种方法可缓解这个问题,就是让对角元素不是0,而是一个非常接近0的数。例如

置K(1,1)=0.0000000001。

K =

0.0000 0 0.3175

0 0 1.1389

0.3175 1.1389 0

>> [U,S,V]=svd(K)

U =

-0.1899 -0.1899 -0.9633

-0.6811 -0.6811 0.2686

-0.7071 0.7071 0.0000

S =

1.1823 0 0

0 1.1823 0

0 0 0.0000

V =

-0.1899 0.1899 -0.9633

-0.6811 0.6811 0.2686

-0.7071 -0.7071 0.0000

本文出自 “Homepage” 博客,请务必保留此出处http://dengwanyu.blog.51cto.com/1884263/384248
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: