我有一个函数 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 明确表示为矩阵。
我手动计算了这个,以找到函数的对角线(如果它是矩阵)。