線性代數 (scipy.linalg)#

線性代數函數。

參見

numpy.linalg 以取得更多線性代數函數。請注意,雖然 scipy.linalg 匯入它們中的大多數,但來自 scipy.linalg 的同名函數可能提供更多或稍微不同的功能。

基礎#

inv(a[, overwrite_a, check_finite])

計算矩陣的反矩陣。

solve(a, b[, lower, overwrite_a, ...])

求解線性方程式組 a @ x == b 中未知數 x,其中 a 為方陣。

solve_banded(l_and_u, ab, b[, overwrite_ab, ...])

求解方程式 a x = b 中的 x,假設 a 為帶狀矩陣。

solveh_banded(ab, b[, overwrite_ab, ...])

求解方程式 a x = b。

solve_circulant(c, b[, singular, tol, ...])

求解 C x = b 中的 x,其中 C 為循環矩陣。

solve_triangular(a, b[, trans, lower, ...])

求解方程式 a x = b 中的 x,假設 a 為三角矩陣。

solve_toeplitz(c_or_cr, b[, check_finite])

使用 Levinson 遞迴求解 Toeplitz 系統

matmul_toeplitz(c_or_cr, x[, check_finite, ...])

使用 FFT 的有效率 Toeplitz 矩陣-矩陣乘法

det(a[, overwrite_a, check_finite])

計算矩陣的行列式

norm(a[, ord, axis, keepdims, check_finite])

矩陣或向量範數。

lstsq(a, b[, cond, overwrite_a, ...])

計算方程式 Ax = b 的最小平方解。

pinv(a, *[, atol, rtol, return_rank, ...])

計算矩陣的 (Moore-Penrose) 偽反矩陣。

pinvh(a[, atol, rtol, lower, return_rank, ...])

計算 Hermitian 矩陣的 (Moore-Penrose) 偽反矩陣。

kron(a, b)

Kronecker 乘積。

khatri_rao(a, b)

Khatri-rao 乘積

orthogonal_procrustes(A, B[, check_finite])

計算正交 (或么正) Procrustes 問題的矩陣解。

matrix_balance(A[, permute, scale, ...])

計算用於行/列平衡的對角相似變換。

subspace_angles(A, B)

計算兩個矩陣之間的子空間角度。

bandwidth(a)

傳回 2D 數值陣列的下帶寬和上帶寬。

issymmetric(a[, atol, rtol])

檢查方陣 2D 陣列是否為對稱矩陣。

ishermitian(a[, atol, rtol])

檢查方陣 2D 陣列是否為 Hermitian 矩陣。

LinAlgError

linalg 函數引發的通用 Python 異常衍生物件。

LinAlgWarning

當線性代數相關運算接近演算法的失敗條件或預期會損失精確度時發出的警告。

特徵值問題#

eig(a[, b, left, right, overwrite_a, ...])

求解方陣的普通或廣義特徵值問題。

eigvals(a[, b, overwrite_a, check_finite, ...])

從普通或廣義特徵值問題計算特徵值。

eigh(a[, b, lower, eigvals_only, ...])

求解複 Hermitian 或實對稱矩陣的標準或廣義特徵值問題。

eigvalsh(a[, b, lower, overwrite_a, ...])

求解複 Hermitian 或實對稱矩陣的標準或廣義特徵值問題。

eig_banded(a_band[, lower, eigvals_only, ...])

求解實對稱或複 Hermitian 帶狀矩陣特徵值問題。

eigvals_banded(a_band[, lower, ...])

求解實對稱或複 Hermitian 帶狀矩陣特徵值問題。

eigh_tridiagonal(d, e[, eigvals_only, ...])

求解實對稱三對角矩陣的特徵值問題。

eigvalsh_tridiagonal(d, e[, select, ...])

求解實對稱三對角矩陣的特徵值問題。

分解#

lu(a[, permute_l, overwrite_a, ...])

計算具有部分樞軸的矩陣 LU 分解。

lu_factor(a[, overwrite_a, check_finite])

計算矩陣的樞軸 LU 分解。

lu_solve(lu_and_piv, b[, trans, ...])

求解方程式系統 a x = b,給定 a 的 LU 分解

svd(a[, full_matrices, compute_uv, ...])

奇異值分解。

svdvals(a[, overwrite_a, check_finite])

計算矩陣的奇異值。

diagsvd(s, M, N)

從奇異值和大小 M、N 建構 SVD 中的 sigma 矩陣。

orth(A[, rcond])

使用 SVD 為 A 的範圍建構正交基底

null_space(A[, rcond, overwrite_a, ...])

使用 SVD 為 A 的零空間建構正交基底

ldl(A[, lower, hermitian, overwrite_a, ...])

計算對稱/Hermitian 矩陣的 LDLt 或 Bunch-Kaufman 分解。

cholesky(a[, lower, overwrite_a, check_finite])

計算矩陣的 Cholesky 分解。

cholesky_banded(ab[, overwrite_ab, lower, ...])

Cholesky 分解帶狀 Hermitian 正定矩陣

cho_factor(a[, lower, overwrite_a, check_finite])

計算矩陣的 Cholesky 分解,用於 cho_solve

cho_solve(c_and_lower, b[, overwrite_b, ...])

求解線性方程式 A x = b,給定 A 的 Cholesky 分解。

cho_solve_banded(cb_and_lower, b[, ...])

求解線性方程式 A x = b,給定帶狀 Hermitian A 的 Cholesky 分解。

polar(a[, side])

計算極分解。

qr(a[, overwrite_a, lwork, mode, pivoting, ...])

計算矩陣的 QR 分解。

qr_multiply(a, c[, mode, pivoting, ...])

計算 QR 分解並將 Q 與矩陣相乘。

qr_update(Q, R, u, v[, overwrite_qruv, ...])

Rank-k QR 更新

qr_delete(Q, R, k, int p=1[, which, ...])

列或行刪除的 QR 降級

qr_insert(Q, R, u, k[, which, rcond, ...])

列或行插入的 QR 更新

rq(a[, overwrite_a, lwork, mode, check_finite])

計算矩陣的 RQ 分解。

qz(A, B[, output, lwork, sort, overwrite_a, ...])

用於矩陣對廣義特徵值的 QZ 分解。

ordqz(A, B[, sort, output, overwrite_a, ...])

用於矩陣對的 QZ 分解,具有重新排序。

schur(a[, output, lwork, overwrite_a, sort, ...])

計算矩陣的 Schur 分解。

rsf2csf(T, Z[, check_finite])

將實 Schur 形式轉換為複 Schur 形式。

hessenberg(a[, calc_q, overwrite_a, ...])

計算矩陣的 Hessenberg 形式。

cdf2rdf(w, v)

將複數特徵值 w 和特徵向量 v 轉換為區塊對角形式 wr 中的實數特徵值和關聯的實數特徵向量 vr,使得。

cossin(X[, p, q, separate, swap_sign, ...])

計算正交/么正矩陣的餘弦-正弦 (CS) 分解。

參見

scipy.linalg.interpolative – 插值矩陣分解

矩陣函數#

expm(A)

計算陣列的矩陣指數。

logm(A[, disp])

計算矩陣對數。

cosm(A)

計算矩陣餘弦。

sinm(A)

計算矩陣正弦。

tanm(A)

計算矩陣正切。

coshm(A)

計算雙曲矩陣餘弦。

sinhm(A)

計算雙曲矩陣正弦。

tanhm(A)

計算雙曲矩陣正切。

signm(A[, disp])

矩陣符號函數。

sqrtm(A[, disp, blocksize])

矩陣平方根。

funm(A, func[, disp])

評估可呼叫物件指定的矩陣函數。

expm_frechet(A, E[, method, compute_expm, ...])

A 在方向 E 中矩陣指數的 Frechet 導數。

expm_cond(A[, check_finite])

Frobenius 範數中矩陣指數的相對條件數。

fractional_matrix_power(A, t)

計算矩陣的分數次方。

矩陣方程式求解器#

solve_sylvester(a, b, q)

計算 Sylvester 方程式 \(AX + XB = Q\) 的解 (X)。

solve_continuous_are(a, b, q, r[, e, s, ...])

求解連續時間代數 Riccati 方程式 (CARE)。

solve_discrete_are(a, b, q, r[, e, s, balanced])

求解離散時間代數 Riccati 方程式 (DARE)。

solve_continuous_lyapunov(a, q)

求解連續 Lyapunov 方程式 \(AX + XA^H = Q\)

solve_discrete_lyapunov(a, q[, method])

求解離散 Lyapunov 方程式 \(AXA^H - X + Q = 0\)

草圖和隨機投影#

clarkson_woodruff_transform(input_matrix, ...)

將 Clarkson-Woodruff 轉換/草圖應用於輸入矩陣。

特殊矩陣#

block_diag(*arrs)

從提供的陣列建立區塊對角矩陣。

circulant(c)

建構循環矩陣。

companion(a)

建立伴隨矩陣。

convolution_matrix(a, n[, mode])

建構卷積矩陣。

dft(n[, scale])

離散傅立葉轉換矩陣。

fiedler(a)

傳回對稱 Fiedler 矩陣

fiedler_companion(a)

傳回 Fiedler 伴隨矩陣

hadamard(n[, dtype])

建構 Hadamard 矩陣。

hankel(c[, r])

建構 Hankel 矩陣。

helmert(n[, full])

建立 n 階 Helmert 矩陣。

hilbert(n)

建立 n 階 Hilbert 矩陣。

invhilbert(n[, exact])

計算 n 階 Hilbert 矩陣的反矩陣。

leslie(f, s)

建立 Leslie 矩陣。

pascal(n[, kind, exact])

傳回 n x n Pascal 矩陣。

invpascal(n[, kind, exact])

傳回 n x n Pascal 矩陣的反矩陣。

toeplitz(c[, r])

建構 Toeplitz 矩陣。

底層常式#

get_blas_funcs(names[, arrays, dtype, ilp64])

從名稱傳回可用的 BLAS 函數物件。

get_lapack_funcs(names[, arrays, dtype, ilp64])

從名稱傳回可用的 LAPACK 函數物件。

find_best_blas_type([arrays, dtype])

尋找最佳匹配的 BLAS/LAPACK 類型。

參見

scipy.linalg.blas – 底層 BLAS 函數

scipy.linalg.lapack – 底層 LAPACK 函數

scipy.linalg.cython_blas – 用於 Cython 的底層 BLAS 函數

scipy.linalg.cython_lapack – 用於 Cython 的底層 LAPACK 函數