c/c++语言开发共享C中的良好矩阵求逆例程

作为数值计算的python代码的一部分,我必须多次反转一些大的(稀疏的)矩阵(~100×100)。 我真的想加速程序,并且向我建议的一种方法是调用C中的子程序进行矩阵求逆步骤。

是否有针对此任务的任何推荐的高效且经过良好测试的C例程?

谢谢。

    >>> from numpy import * >>> from numpy.linalg import inv >>> from scipy.sparse import csr_matrix >>> m = matrix([[3,1,5],[1,0,8],[2,1,4]]) >>> s = csr_matrix(m) >>> invs = inv(a) # Inverse sparse matrix >>> dot(a,inva) # Check the result, should be eye(3) within machine precision csr_matrix([[ 1.00000000e-00, 2.77555756e-17, 3.60822483e-16], [ 0.00000000e+00, 1.00000000e+00, 0.00000000e+00], [ -1.11022302e-16, 0.00000000e+00, 1.00000000e+00]]) 

    你真的需要逆转吗? 您可以在没有倒置的情况下实现目标:

    确实需要逆的情况很少见。 而且,稀疏矩阵的逆矩阵不一定是稀疏的。 通常,反转比LU分解更昂贵并且易于出现舍入误差。

    – >

      以上就是c/c++开发分享C中的良好矩阵求逆例程相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/559974.html

      (0)
      上一篇 2021年1月27日
      下一篇 2021年1月27日

      精彩推荐