当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy linalg.use_solver用法及代码示例


本文简要介绍 python 语言中 scipy.sparse.linalg.use_solver 的用法。

用法:

scipy.sparse.linalg.use_solver(**kwargs)#

选择要使用的默认稀疏直接求解器。

参数

useUmfpack 布尔型,可选

使用 UMFPACK [1]、[2]、[3]、[4]。超过 SuperLU。仅当安装scikits.umfpack 时才有效。默认值:真

assumeSortedIndices 布尔型,可选

允许 UMFPACK 跳过对 CSR/CSC 矩阵索引进行排序的步骤。仅当 useUmfpack 为 True 且安装了 scikits.umfpack 时才有效。默认值:假

注意

默认稀疏解算器是 UMFPACK(如果可用)(安装了 scikits.umfpack)。这可以通过传递 useUmfpack = False 来更改,这会导致使用始终存在的基于 SuperLU 的解算器。

UMFPACK 需要 CSR/CSC 矩阵来排序列/行索引。如果确定矩阵满足此要求,请传递 assumeSortedIndices=True 以获得一些速度。

参考

[1]

T. A. Davis,算法 832:UMFPACK - 一种带有列预排序策略的 unsymmetric-pattern 多前沿方法,ACM Trans。数学软件,30(2),2004 年,第 196-199 页。 https://dl.acm.org/doi/abs/10.1145/992200.992206

[2]

T. A. Davis,unsymmetric-pattern 多前沿方法的专栏预排序策略,ACM Trans。数学软件,30(2),2004 年,第 165-195 页。 https://dl.acm.org/doi/abs/10.1145/992200.992205

[3]

T. A. Davis 和 I. S. Duff,非对称稀疏矩阵的单额/多额组合方法,ACM Trans。数学软件,25(1),1999,第 1-19 页。 https://doi.org/10.1145/305658.287640

[4]

T. A. Davis 和 I. S. Duff,稀疏 LU 分解的 unsymmetric-pattern 多前沿方法,SIAM J. 矩阵分析和计算,18(1),1997,第 140-158 页。 https://doi.org/10.1137/S0895479894246905T

例子

>>> import numpy as np
>>> from scipy.sparse.linalg import use_solver, spsolve
>>> from scipy.sparse import csc_matrix
>>> R = np.random.randn(5, 5)
>>> A = csc_matrix(R)
>>> b = np.random.randn(5)
>>> use_solver(useUmfpack=False) # enforce superLU over UMFPACK
>>> x = spsolve(A, b)
>>> np.allclose(A.dot(x), b)
True
>>> use_solver(useUmfpack=True) # reset umfPack usage to default

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.sparse.linalg.use_solver。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。