scipy 中稀疏正定线性系统推荐的直接求解器?

2024-04-30

如果 scipy.sparse 文档中对此有清楚的解释,我很抱歉。

使用 scipy 时,您建议使用什么函数来求解稀疏正定线性方程组?我想使用直接方法,并且希望对列重新排序,以便在系数矩阵的 Cholesky 分解中尽可能保持稀疏性。理想情况下,我能够尝试各种重新排序选项。

scipy.sparse 中是否存在稀疏正定系统的直接求解器? scikit.sparse 是正确的选择吗?


scipy.sparse.linalg.spsolve http://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.linalg.spsolve.html已经足够清楚了, 但似乎为了速度你必须

pip install scikit-umfpack https://pypi.python.org/pypi/scikit-umfpack

or else

  1. 构建 UMFPACK 和 AMD稀疏套件 http://www.cise.ufl.edu/research/sparse/SuiteSparse
  2. 然后从源代码重建 scipy,[umfpack] umfpack_libs = ...在 site.cfg 中。

否则 scipy.sparse.linalg 默认为较慢的 SuperLU。

scikit.sparse 是正确的选择吗?

与什么相比,以什么标准? 如果C / C++对你来说足够了,直接使用SuiteSparse。 任何工具都取决于你对什么感到满意, 对于用户:一个、两个、很多。 也许更好的可视化比更快的 spsolve 对您的项目更有帮助。

scipy.sparse 的一些非常明显的优点和缺点:

+ 用于快速开发的Python,数据输入——矩阵——可视化
+ 多个软件包基于 scipy.sparse 构建; 询问您的应用领域(是?)
- 粗糙的边缘(矩阵很痛苦),据我所知没有维基来收集提示和代码片段
- 层层叠加,scipy.sparse -- SuiteSparse -- ... BLAS ... 使计时和调试变得困难。

Fwiw,我的 iMac 上的求解器时间差异很大。 这些都是带有默认参数的,没有 umfpack。
(这不是一个现实的测试用例;但是满意的 http://en.wikipedia.org/wiki/Satisficing通常就足够好了。)

X = sparse.rand( m, n, dens, format="csr" )
A = 1e-6 * sparse.eye(m) + X * X.T
linalg solvers( A, b )

(5000, 5000)  density 0.42 % --
   51 msec spsolve
    5 msec bicg
    3 msec bicgstab
    2 msec cg
    4 msec cgs
    3 msec gmres
    4 msec lgmres
    1 msec minres
    6 msec qmr
    5 msec lsmr
(5000, 5000)  density 0.84 % --
  428 msec spsolve
   12 msec bicg
    7 msec bicgstab
    5 msec cg
   10 msec cgs
    6 msec gmres
    8 msec lgmres
    2 msec minres
   13 msec qmr
   12 msec lsmr
(5000, 5000)  density 1.3 % --
 1462 msec spsolve
   16 msec bicg
    9 msec bicgstab
    7 msec cg
   11 msec cgs
    7 msec gmres
   10 msec lgmres
    1 msec minres
   18 msec qmr
   14 msec lsmr
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

scipy 中稀疏正定线性系统推荐的直接求解器? 的相关文章

  • 如何用Python实现FIR高通滤波器?

    首先 我在 Stack Exchange 中问了这个问题 我只得到与概念相关的答案 而不是面向实现的答案 所以 我的问题是我正在尝试创建高通滤波器并使用 Python 实现 from numpy import cos sin pi abso
  • 解释 scipy.stats.entropy 值

    我正在尝试使用scipy stats 熵来估计库尔巴克 莱布勒 KL 两个分布之间的散度 更具体地说 我想使用 KL 作为衡量标准来确定两个分布的一致性 但是 我无法解释 KL 值 例如 t1 numpy random normal 2 5
  • 远程linux服务器到远程linux服务器大型稀疏文件复制 - 如何?

    我有两台 CentOS 5 4 服务器 每台服务器上都安装了 VMware Server 假设我始终对 vmware 虚拟机使用稀疏文件 将虚拟机文件从一台服务器复制到另一台服务器的最可靠 最快速的方法是什么 虚拟机的文件复制起来很痛苦 因
  • 在 Python 中倾斜数组

    我有一个 2D 数组 我将使用它保存为灰度图像scipy misc toimage 在此之前 我想将图像倾斜给定角度 像这样进行插值scipy ndimage interpolation rotate 上图只是为了说明倾斜过程 我知道我必须
  • Python 或 C 语言中的 Matlab / Octave bwdist()

    有谁知道 Matlab Octave bwdist 函数的 Python 替代品 此函数返回给定矩阵的每个单元格到最近的非零单元格的欧几里得距离 我看到了一个 Octave C 实现 一个纯 Matlab 实现 我想知道是否有人必须用 AN
  • NumPy 和 SciPy - .todense() 和 .toarray() 之间的区别

    我想知道使用是否有什么区别 优点 缺点 toarray vs todense 在稀疏 NumPy 数组上 例如 import scipy as sp import numpy as np sparse m sp sparse bsr mat
  • wavfile.read python 文件意外结束

    我正在尝试通过以下代码读取 wav 音频文件 from scipy io import wavfile file PC1 20090513 050000 0010 wav rate audio wavfile read file 但它显示以
  • 如何在Python中高效地添加稀疏矩阵

    我想知道如何在Python中有效地添加稀疏矩阵 我有一个程序 可以将大任务分解为子任务 并将它们分配到多个 CPU 上 每个子任务都会产生一个结果 一个 scipy 稀疏矩阵 格式为 lil matrix 稀疏矩阵尺寸为 100000x50
  • 计算互相关函数?

    In R 我在用ccf or acf计算成对互相关函数 以便我可以找出哪个移位给我带来最大值 从它的外观来看 R给我一个标准化的值序列 Python 的 scipy 中是否有类似的东西 或者我应该使用fft模块 目前 我正在这样做 xcor
  • 如何在 Debian 上的 virtualenv 中安装 numpy?

    注 参见这另一篇文章 https stackoverflow com questions 6442754 how to install h5py numpylibhdf5 as non root on a debian linux syst
  • ValueError:数据必须为正(boxcox scipy)

    我正在尝试将我的数据集转换为正态分布 0 8 298511e 03 1 3 055319e 01 2 6 938647e 02 3 2 904091e 02 4 7 422441e 02 5 6 074046e 02 6 9 265747e
  • 如何在 OSX 上安装 numpy 和 scipy?

    我是 Mac 新手 请耐心等待 我现在使用的是雪豹 10 6 4 我想安装numpy和scipy 所以我从他们的官方网站下载了python2 6 numpy和scipy dmg文件 但是 我在导入 numpy 时遇到问题 Library F
  • 使用 scipy 的solve_bvp 求解 BVP

    我有一个由 3 个微分方程组成的系统 我相信从代码中可以明显看出 具有 3 个边界条件 我设法在 MATLAB 中用一个循环来解决这个问题 一点一点地改变最初的猜测 而不会在程序即将返回错误时终止程序 然而 关于scipy s solve
  • 如何使用 scipy.odr 估计拟合优度?

    我使用 scipy odr 将数据与权重拟合 但我不知道如何获得拟合优度或 R 平方的度量 有人对如何使用函数存储的输出来获取此度量有建议吗 The res var的属性Output http docs scipy org doc scip
  • Numpy ,Python3.6 - 无法理解为什么地址不同?

    这是我的代码 my array 1 np arange 25 reshape 5 5 print my array 1 my array red my array 1 1 2 print my array red my array blue
  • scipy cdist 与稀疏矩阵

    我需要计算两组向量之间的距离 source matrix and target matrix 我有以下几行 当两者source matrix and target matrix属于类型scipy sparse csr csr matrix
  • 使用和不使用 SciPy 计算 k 组合的数量

    我对这个函数感到困惑combSciPy 的 http docs scipy org doc scipy 0 14 0 reference generated scipy misc comb html看起来比简单的 Python 实现要慢 这
  • 使用 scipy curve_fit 拟合噪声指数的建议?

    我正在尝试拟合通常按以下方式建模的数据 def fit eq x a b c d e return a 1 np exp x b c np exp x d e x np arange 0 100 0 001 y fit eq x 1 1 1
  • 导入 SciPy 或 scikit-image,“from scipy.linalg import _fblas:导入错误:DLL 失败”

    我正在导入 from scipy import misc io 但我收到这些错误 Traceback most recent call last File C work asaaki code generateProposals py li
  • 是否可以将 cython 函数作为参数传递给 scipy 函数?

    Scipy 有许多函数接受 python 可调用来执行某些操作 特别是 我正在使用数学优化函数scipy optimize leastsq接受 Python 可调用作为目标函数参数 该目标函数可以通过以下方式调用leastsq在最小化过程中

随机推荐