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

抽象线性算子#

LinearOperator(*args, **kwargs)

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

aslinearoperator(A)

将 A 返回为 LinearOperator。

矩阵运算#

inv(A)

计算稀疏数组的逆

expm(A)

使用 Pade 近似计算矩阵指数。

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

计算矩阵 A 的指数作用于 B 的结果。

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 x = bx,假设 A 是一个三角矩阵。

is_sptriangular(A)

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

spbandwidth(A)

返回 2D 数值数组的下带宽和上带宽。

factorized(A)

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

MatrixRankWarning

针对严格奇异矩阵的警告。

use_solver(**kwargs)

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

线性方程组的迭代法

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

求解 Ax = b,使用双共轭梯度法。

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

求解 Ax = b,使用稳定双共轭梯度法。

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

求解 Ax = b,使用共轭梯度法,其中 A 为对称正定矩阵。

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

求解 Ax = b,使用平方共轭梯度法。

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

求解 Ax = b,使用广义最小残差法。

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

求解 Ax = b,使用 LGMRES 算法。

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

求解 Ax = b,使用最小残差法,其中 A 为对称矩阵。

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

求解 Ax = b,使用拟最小残差法。

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

求解 Ax = b,使用灵活的 GCROT(m,k) 算法。

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

求解 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 错误