matlab中函数svd是什么意思

来源:百度知道 编辑:UC知道 时间:2024/06/23 16:23:58
在matlab中
[u,s,v]=svd(x)
这个是对数据x干什么???
本人matlab新手 使用7.1版本 谢谢^_^!!

奇异值分解 (sigular value decomposition,SVD) 是一种正交矩阵分解法;SVD是最可靠的分解法,但是它比QR 分解(QR分解法是将矩阵分解成一个正规正交矩阵与上三角形矩阵。)法要花上近十倍的计算时间。[U,S,V]=svd(A),其中U和V代表二个相互正交矩阵,而S代表一对角矩阵。 和QR分解法相同者, 原矩阵A不必为正方矩阵。

使用SVD分解法的用途是解最小平方误差法和数据压缩。

matlab里运行: a=[1 2 3 4;5 6 7 8;9 10 11 12;2 4 6 7.99999];[u,s,v]=svds(a)
得到结果:u =
0.19309325290913 -0.39372991088164 0.80064042247500 -0.40824829032397
0.47876392522628 0.03942520140203 0.32025628954945 0.81649658098368
0.76443459754343 0.47258031368569 -0.16012784453451 -0.40824829049184
0.38618628362685 -0.78745809913181 -0.48038515432194 -0.00000000008393

s =
27.55065585030689 0 0 0
0 3.31077063809069 0 0
0 0 0.00000263117785 0
0 0 0 0.00000000000000

v =