Scipy GMRES迭代时间比预期长的Tim

2024-04-27 03:56:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试反转大小为50000+行的密集矩阵。我一直在慢慢地努力让SciPy GMRES的运作发挥作用。一次迭代似乎花费了过多的时间。我输入以下信息:

x_gm = scipy.sparse.linalg.gmres(A,b,tol=1e-08,maxiter=1)

其中A是一个类对象,它调用一个函数来计算矩阵向量积A*v。它使用Python多处理池命令快速计算矩阵向量积。对于我感兴趣的矩阵,我用一个8核的多处理池对这个产品A*V进行了计时,大约需要50秒。但是,运行上面的gmres命令一次迭代需要1370秒,我的印象是大部分的计算时间都是矩阵向量积。这似乎有点奇怪,我想知道是否还有其他事情发生。gmres是否忽略了1次迭代命令并进行了多次迭代?任何建议或信息将不胜感激。在

我使用的Scipy版本是.0.9.0。在


Tags: 命令信息时间矩阵scipy向量sparse花费
1条回答
网友
1楼 · 发布于 2024-04-27 03:56:32

maxiter控制重新启动循环的数目,而不是点积。 点积的界限是restart*maxiter,其中{}的默认值为20。实际上,20*50 s = 1000 s,所以时间确实是由矩阵向量积决定的。在

只需在m-v产品函数中添加print语句,您就可以自己发现这一点。在

相关问题 更多 >