Python上的大型稀疏矩阵反演 您所在的位置:网站首页 稀疏矩阵python Python上的大型稀疏矩阵反演

Python上的大型稀疏矩阵反演

2023-03-28 23:47| 来源: 网络整理| 查看: 265

好消息是,如果您将任何流行的python库用于线性代数(即numpy),那么python的速度对数学来说并不重要--所有这些都是在库中本地完成的。

例如,在编写matrix_prod = matrix_a @ matrix_b时,这并不是要触发大量Python循环来乘以这两个矩阵,而是使用numpy的内部实现(我认为它使用了FORTRAN库)。

当涉及到求解稀疏存储的矩阵时,scipy.sparse.linalg模块会为您提供支持,以指定稀疏方程组。(这就是你对矩阵的逆所做的)。如果你想使用稀疏矩阵,那就是你的方法--注意,有些矩阵在数学上是稀疏的(也就是说,大多数条目是0),而矩阵是以稀疏矩阵的形式存储的,这意味着你避免了存储数百万个零。Numpy本身并没有稀疏存储的矩阵,但是scipy有。

如果您的矩阵被密集地存储,但在数学上是稀疏的,即使用标准的numpy ndarray来存储它,那么在Python中实现任何东西都不会变得更快。与高度优化的反演相比,Python的实际缓慢性将超过理论复杂性的增益。

求稀疏矩阵通常失去稀疏性。而且,如果你能避免它的话,你可以never invert a matrix!对于稀疏矩阵,解线性方程组Ax = b,用A For矩阵和b作为已知向量,对于x来说,比计算A⁻1=1要快得多!所以,

我目前正在研究一种关于Python的最小二乘算法,用于一些大地测量计算。

因为LS说你不需要逆矩阵,所以永远不要计算它。LS的重点是找到一个尽可能接近的解,即使你的矩阵不是可逆的。这对稀疏矩阵来说是很好的情况!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有