Python等效于matlab预条件共轭梯度函数句柄方法

时间:2017-04-24 20:35:12

标签: python matlab gradient-descent

Matlab中是否存在以下预处理共轭梯度方法的等效Python表达式,其中第一个参数是函数句柄而不是矩阵:

pcg(@(x)myfunction(x,arg1, arg2),x0,thres,max_iter);

1 个答案:

答案 0 :(得分:0)

我相信您可以将scipy.sparse.linalg.cgscipy.sparse.linalg.LinearOperator结合使用。

“许多迭代方法(例如cg,gmres)不需要知道矩阵的单个项来求解线性系统A x = b。此类求解器仅需要计算矩阵矢量乘积A < / em> v其中v是一个密集向量。此类用作迭代求解器和类似矩阵的对象之间的抽象接口。“

“ M:{稀疏矩阵,密集矩阵,LinearOperator} A的预处理器。该预处理器应近似于A的倒数。有效的预处理可显着提高收敛速度,这意味着为达到给定的容错能力,需要进行的迭代次数较少。“