【问题标题】:Retrieving number of iterations that ran for sparse linear solver in SciPy检索在 SciPy 中为稀疏线性求解器运行的迭代次数
【发布时间】:2015-06-27 03:05:27
【问题描述】:

如何检索运行了多少次迭代以达到SciPy sparse linear system solvers 中指定的容差水平?

【问题讨论】:

    标签: python scipy linear-algebra


    【解决方案1】:

    对于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
    

    【讨论】:

      【解决方案2】:

      求解器支持在每次迭代后调用的 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]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-27
        • 1970-01-01
        • 2016-11-21
        • 1970-01-01
        • 2012-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多