Matlab中是否存在以下预处理共轭梯度方法的等效Python表达式,其中第一个参数是函数句柄而不是矩阵:
pcg(@(x)myfunction(x,arg1, arg2),x0,thres,max_iter);
答案 0 :(得分:0)
我相信您可以将scipy.sparse.linalg.cg
与scipy.sparse.linalg.LinearOperator
结合使用。
“许多迭代方法(例如cg,gmres)不需要知道矩阵的单个项来求解线性系统A x = b。此类求解器仅需要计算矩阵矢量乘积A < / em> v其中v是一个密集向量。此类用作迭代求解器和类似矩阵的对象之间的抽象接口。“
“ M:{稀疏矩阵,密集矩阵,LinearOperator} A的预处理器。该预处理器应近似于A的倒数。有效的预处理可显着提高收敛速度,这意味着为达到给定的容错能力,需要进行的迭代次数较少。“