Matlab - 常见Error

 

1. SVD did not converge

  当用matlab中的svd函数对矩阵X做奇异值分解的时候,可能会出现这个错误。

源代码:

X = rand(n,n);

[U,S,V] = svd(X);

运行后出现错误:SVD did not converge。

解决方法:

X = rand(n,n);

X = X+eye(n,n)*1e-12;

[U,S,V] = svd(X);

解析:这个错误是由QR迭代步数不能超过75的限制引起的,http://cn.mathworks.com/help/matlab/ref/svd.html

  在X的对角线上加一个极小的数字,可以保证X是可分解的。运行后错误不会再出现了。

posted on 2015-09-16 17:20  枯叶之蝶S  阅读(1603)  评论(0编辑  收藏  举报