Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
函数句柄上matlab预处理共轭梯度法的Python等价_Python_Matlab_Gradient Descent - Fatal编程技术网

函数句柄上matlab预处理共轭梯度法的Python等价

函数句柄上matlab预处理共轭梯度法的Python等价,python,matlab,gradient-descent,Python,Matlab,Gradient Descent,Matlab中的以下预处理共轭梯度法是否有等效Python表达式,其中第一个参数是函数句柄而不是矩阵: pcg(@(x)myfunction(x,arg1, arg2),x0,thres,max_iter); 我相信你能和我结合 许多迭代方法(例如cg、gmres)不需要知道矩阵的单个条目来解线性系统Ax=b。此类解算器只需要计算矩阵向量积Av,其中v是稠密向量。此类作为迭代解算器和类似矩阵的对象之间的抽象接口 M:{稀疏矩阵,稠密矩阵,线性构造器} A的预处理程序。预处理程序应近似于A的倒数

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

pcg(@(x)myfunction(x,arg1, arg2),x0,thres,max_iter);
我相信你能和我结合

许多迭代方法(例如cg、gmres)不需要知道矩阵的单个条目来解线性系统Ax=b。此类解算器只需要计算矩阵向量积Av,其中v是稠密向量。此类作为迭代解算器和类似矩阵的对象之间的抽象接口

M:{稀疏矩阵,稠密矩阵,线性构造器}
A的预处理程序。预处理程序应近似于A的倒数。有效的预处理可显著提高收敛速度,这意味着需要更少的迭代才能达到给定的容错能力。“

您可能需要自己编写它,这不是一个很难的算法我没有在pythonOh中找到类似于函数句柄的东西,那么你搜索的很少!它们被称为Lambda函数。尽管如此,如果您编写自己的
PGC
,那么您不需要使用Lambdas,您可以用函数替换矩阵乘法
A*x
。我觉得您可以使用lambda表达式和线性运算符(而不是arg1、arg2)传递单参数函数,但我将进一步研究。谢谢你的帮助!