我正在尝试获取矩阵的两个最小特征向量:
[v,c]=eigs(lap,2,'sm');
结果v
是“正确的”~66% 的时间。当然,当我说正确时,我的意思是就我要解决的问题而言“看起来正确”。另一部分时间我得到不同的向量。
我知道 eigs 使用数值求解器,它的初始猜测是随机的,所以这就解释了。困扰我的是根据matlab的文档,我看到用作停止标准的公差eps
最初设置为,我尝试增加opts.maxit=10000000;
,但它似乎不会影响结果或运行时间,所以我假设公差得到满足在达到最大迭代次数之前。
我该怎么做才能获得一致的结果?在计算时间方面没有问题。
请注意,矩阵非常大且稀疏,所以我不能使用eig
,只能使用eigs