當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。