python scipy eigs:无论收敛容差如何,在最大迭代次数后返回特征
发布时间:2020-12-20 13:08:20 所属栏目:Python 来源:网络整理
导读:我想得到一个稀疏对称矩阵的特征向量,在给定时间内具有最低的精度. 目前我在scipy.sparse.eigsh中使用以下内容: evals,evecs = eigsh(MyMatrix,2,which='LM',tol=1.e-15,maxiter=1000000) 如果它没有通过maxiter迭代收敛到tol精度,它会引发一个ArpackNoConv
我想得到一个稀疏对称矩阵的特征向量,在给定时间内具有最低的精度.
目前我在scipy.sparse.eigsh中使用以下内容: evals,evecs = eigsh(MyMatrix,2,which='LM',tol=1.e-15,maxiter=1000000) 如果它没有通过maxiter迭代收敛到tol精度,它会引发一个ArpackNoConvergence错误,其中包含已收敛的特征向量/值,但不包含那些未收敛的特征向量/值.然而,我更倾向于使用精度为1.e-14而不是1.e-15的向量,而不是根本没有向量.有没有办法强制返回尚未收敛的特征向量(可能与另一个库)? 谢谢 ! 解决方法ArpackNoConvergence 异常具有包含部分结果的.eigenvalues和.eigenvectors属性:
import numpy as np from scipy.sparse.linalg import eigsh,ArpackNoConvergence M = np.random.RandomState(0).randn(100,100) try: w,v = eigsh(M,5,maxiter=20) except ArpackNoConvergence as e: print(e) w = e.eigenvalues v = e.eigenvectors print(w.shape,v.shape) 打印: ARPACK error -1: No convergence (21 iterations,2/5 eigenvectors converged) ((2,),(100,2)) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- SyntaxError: Non-UTF-8 code starting with '\
- python – 使用Pandas或其他方法比较大(~40GB)的文本数据
- python – 基于列表中的int连接字符串
- 在python3.5中使用OpenCV的实例讲解
- python – 我的函数需要负时间才能完成.世界上发生了什么?
- python – 使用另一个DataFrame过滤Pandas DataFrame
- python – 我应该使用fork还是thread?
- Python之Django环境搭建教程(MAC+pycharm+Django++postgreS
- python实现无证书加密解密实例
- Python爬虫:12306抢票,开源代码!