【发布时间】:2015-06-27 03:05:27
【问题描述】:
如何检索运行了多少次迭代以达到SciPy sparse linear system solvers 中指定的容差水平?
【问题讨论】:
标签: python scipy linear-algebra
如何检索运行了多少次迭代以达到SciPy sparse linear system solvers 中指定的容差水平?
【问题讨论】:
标签: python scipy linear-algebra
对于python 3,以下作品:
def solve_sparse(A, b):
num_iters = 0
def callback(xk):
nonlocal num_iters
num_iters+=1
x,status=scipy.sparse.linalg.cg(A, b,tol=1e-15, callback=callback)
return x,status,num_iters
【讨论】:
求解器支持在每次迭代后调用的 callback 关键字参数。所以你可以这样做:
def solve_sparse(A, b):
num_iters = 0
def callback(xk):
num_iters += 1
# call the solver on your data
return scipy.sparse.linalg.cg(A, b, callback=callback)[0]
【讨论】: