稀疏线性代数 (scipy.sparse.linalg)#

抽象线性算子#

LinearOperator(*args, **kwargs)

执行矩阵向量乘积的通用接口。

aslinearoperator(A)

A 转换为 LinearOperator

矩阵运算#

inv(A)

计算稀疏数组的逆。

expm(A)

使用 Padé 近似计算矩阵指数。

expm_multiply(A, B[, start, stop, num, ...])

计算矩阵指数 A 对 B 的作用。

funm_multiply_krylov(f, A, b, *[, assume_a, ...])

一种用于评估 y = f(tA) b 的重启 Krylov 方法,源自 [R4392c003a72c-1] [R4392c003a72c-2]

matrix_power(A, power)

将方阵提升至整数幂 power

矩阵范数#

norm(x[, ord, axis])

稀疏矩阵的范数。

onenormest(A[, t, itmax, compute_v, compute_w])

计算稀疏数组 1-范数的下界。

求解线性问题#

线性方程组的直接法

spsolve(A, b[, permc_spec, use_umfpack])

求解稀疏线性系统 Ax=b,其中 b 可以是向量或矩阵。

spsolve_triangular(A, b[, lower, ...])

假设 A 为三角矩阵,求解 A x = b 中的 x

is_sptriangular(A)

返回一个 2 元组,指示稀疏矩阵 A 的下/上三角结构。

spbandwidth(A)

返回二维数值数组的下带宽和上带宽。

factorized(A)

返回一个用于求解已预分解 A 的稀疏线性系统的函数。

MatrixRankWarning

针对奇异矩阵的警告。

use_solver(**kwargs)

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

线性方程组的迭代法

bicg(A, b[, x0, rtol, atol, maxiter, M, ...])

使用双共轭梯度法 (BIConjugate Gradient) 求解 Ax = b

bicgstab(A, b[, x0, rtol, atol, maxiter, M, ...])

使用稳定双共轭梯度法 (BIConjugate Gradient STABilized) 求解 Ax = b

cg(A, b[, x0, rtol, atol, maxiter, M, callback])

对于对称正定矩阵 A,使用共轭梯度法 (Conjugate Gradient) 求解 Ax = b

cgs(A, b[, x0, rtol, atol, maxiter, M, callback])

使用共轭梯度平方法 (Conjugate Gradient Squared) 求解 Ax = b

gmres(A, b[, x0, rtol, atol, restart, ...])

使用广义最小残差法 (Generalized Minimal RESidual) 求解 Ax = b

lgmres(A, b[, x0, rtol, atol, maxiter, M, ...])

使用 LGMRES 算法求解 Ax = b

minres(A, b[, x0, rtol, shift, maxiter, M, ...])

对于实对称或复厄米矩阵 A,使用最小残差法 (MINimum RESidual) 求解 Ax = b

qmr(A, b[, x0, rtol, atol, maxiter, M1, M2, ...])

使用拟最小残差法 (Quasi-Minimal Residual) 求解 Ax = b

gcrotmk(A, b[, x0, rtol, atol, maxiter, M, ...])

使用柔性 GCROT(m,k) 算法求解 Ax = b

tfqmr(A, b[, x0, rtol, atol, maxiter, M, ...])

使用无转置拟最小残差法 (Transpose-Free Quasi-Minimal Residual) 求解 Ax = b

最小二乘问题的迭代法

lsqr(A, b[, damp, atol, btol, conlim, ...])

寻找大型稀疏线性方程组的最小二乘解。

lsmr(A, b[, damp, atol, btol, conlim, ...])

用于最小二乘问题的迭代求解器。

矩阵分解#

特征值问题

eigs(A[, k, M, sigma, which, v0, ncv, ...])

寻找方阵 A 的 k 个特征值和特征向量。

eigsh(A[, k, M, sigma, which, v0, ncv, ...])

寻找实对称方阵或复厄米矩阵 A 的 k 个特征值和特征向量。

lobpcg(A, X[, B, M, Y, tol, maxiter, ...])

局部最优块预条件共轭梯度法 (LOBPCG)。

奇异值问题

svds(A[, k, ncv, tol, which, v0, maxiter, ...])

稀疏矩阵的部分奇异值分解。

svds 函数支持以下求解器

完全或不完全 LU 分解

splu(A[, permc_spec, diag_pivot_thresh, ...])

计算稀疏方阵的 LU 分解。

spilu(A[, drop_tol, fill_factor, drop_rule, ...])

计算稀疏方阵的不完全 LU 分解。

SuperLU()

稀疏矩阵的 LU 分解。

结构化稀疏数组#

LaplacianNd(*args, **kwargs)

N 维网格拉普拉斯算子及其特征值/特征向量。

异常#

ArpackNoConvergence(msg, eigenvalues, ...)

ARPACK 迭代未收敛。

ArpackError(info[, infodict])

ARPACK 错误。