我正在对一个大小的稀疏矩阵进行对角化153600×153600通过eigsh函数。我没有将容差设置为特定值,因此它将是大约的默认值2×10−16. 但是,如果我运行相同的代码 3 次,特征值之间的差异要大得多(大约6×10−8) 比这个!3次试验的特征值如下图所示。真正的特征值是10−3显示的倍数。

问题1、为什么不满足公差?
问题 2.如何提高耐受性?如果我只是将tol值设置为小于机器 epsilon,它会起作用吗?(我担心numpy模块不支持比机器epsilon更高精度的计算。)
问题 3.说明迭代算法在特征值s 达到容差范围内eigsh时停止的文档。但是,我认为每个试验的特征向量比特征值的差异更大。我可以控制特征向量s 的误差吗?