我有一个函数A(x),我已经使用scipy.sparse.linalg.LinearOperator将其转换为线性运算符:
A_operator = scipy.sparse.linalg.LinearOperator((ny, nx), matvec=A).
我有一个Ax=B的问题,我使用共轭梯度法(scipy.sparse.linalg.cg)来解决,但是它是发散的,所以我认为我的函数A可能是病态的。
我需要通过取A的对角线的倒数来预处理。
如何容易地找到一个线性算子或函数的对角线?我只能找到计算矩阵对角线的函数,而且我的问题太大,无法将A显式表示为矩阵。
1条答案
按热度按时间ui7jx7zq1#
如果函数是一个矩阵,我用手工计算来找到函数的对角线。