Линейная алгебра (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 является ленточной матрицей, определённой как ab.

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

Решить уравнение a @ x = b для x, где a является эрмитовой положительно-определенной ленточной матрицей, определенной как ab.

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

Решить уравнение C @ x = b для x, где C является циркулянтной матрицей, определённой c.

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

Решить уравнение a @ x = b для x, где a является треугольной матрицей.

solve_toeplitz(c_or_cr, b[, check_finite])

Решить уравнение T @ x = b для x, где T является матрицей Тёплица, определённой c_or_cr.

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

Эффективное умножение матриц Тёплица с использованием БПФ

det(a[, overwrite_a, check_finite])

Вычислить определитель матрицы

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

Норма матрицы или вектора.

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

Вычислить решение методом наименьших квадратов для уравнения a @ x = b.

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

Вычислить (Мура-Пенроуза) псевдообратную матрицу.

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

Вычислить (Мура-Пенроуза) псевдообратную эрмитовой матрицы.

kron(a, b)

Произведение Кронекера.

khatri_rao(a, b)

Произведение Хатри-Рао

orthogonal_procrustes(A, B[, check_finite])

Вычислить матричное решение ортогональной (или унитарной) задачи Прокруста.

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

Вычислить диагональное подобие преобразования для балансировки строк/столбцов.

subspace_angles(A, B)

Вычислить углы между подпространствами двух матриц.

bandwidth(a)

Возвращает нижнюю и верхнюю полосу пропускания двумерного числового массива.

issymmetric(a[, atol, rtol])

Проверить, является ли квадратный 2D массив симметричным.

ishermitian(a[, atol, rtol])

Проверить, является ли квадратный 2D массив эрмитовым.

LinAlgError

Объект, производный от общего исключения Python, вызываемый функциями linalg.

LinAlgWarning

Предупреждение, выдаваемое, когда операция, связанная с линейной алгеброй, близка к условиям сбоя алгоритма или ожидается потеря точности.

Задачи на собственные значения#

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

Решить обычную или обобщенную задачу на собственные значения для квадратной матрицы.

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

Вычисление собственных значений из обычной или обобщенной задачи на собственные значения.

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

Решение стандартной или обобщённой проблемы собственных значений для комплексной эрмитовой или вещественной симметричной матрицы.

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

Решает стандартную или обобщённую задачу на собственные значения для комплексной эрмитовой или вещественной симметричной матрицы.

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

Решение проблемы собственных значений для вещественной симметричной или комплексной эрмитовой ленточной матрицы.

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

Решение проблемы собственных значений для вещественной симметричной или комплексной эрмитовой ленточной матрицы.

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, при заданном LU-разложении a

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

Сингулярное разложение.

svdvals(a[, overwrite_a, check_finite])

Вычисление сингулярных значений матрицы.

diagsvd(s, M, N)

Построить матрицу сигма в SVD из сингулярных значений и размеров M, N.

orth(A[, rcond])

Построить ортонормированный базис для области значений A с использованием SVD

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

Постройте ортонормированный базис для нулевого пространства A с использованием SVD

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

Вычисляет LDLt или факторизацию Банча-Кауфмана симметричной/эрмитовой матрицы.

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

Вычислить разложение Холецкого матрицы.

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

Разложение Холецкого для ленточной эрмитовой положительно-определенной матрицы

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

Вычислить разложение Холецкого матрицы для использования в cho_solve

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

Решить линейные уравнения A x = b, учитывая факторизацию Холецкого A.

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

Решение линейных уравнений A x = b, учитывая факторизацию Холецкого для ленточной эрмитовой A.

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, ...])

Обновление QR ранга k

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, ...])

Вычисление разложения Шура матрицы.

rsf2csf(T, Z[, check_finite])

Преобразование вещественной формы Шура в комплексную форму Шура.

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

Вычислить форму Хессенберга матрицы.

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.

expm_cond(A[, check_finite])

Относительное число обусловленности матричной экспоненты в норме Фробениуса.

fractional_matrix_power(A, t)

Вычислить дробную степень матрицы.

Решатели матричных уравнений#

solve_sylvester(a, b, q)

Вычисляет решение (X) уравнения Сильвестра \(AX + XB = Q\).

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

Решает непрерывное алгебраическое уравнение Риккати (CARE).

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

Решает дискретное алгебраическое уравнение Риккати (DARE).

solve_continuous_lyapunov(a, q)

Решает непрерывное уравнение Ляпунова \(AX + XA^H = Q\).

solve_discrete_lyapunov(a, q[, method])

Решает дискретное уравнение Ляпунова \(AXA^H - X + Q = 0\).

Эскизы и случайные проекции#

clarkson_woodruff_transform(input_matrix, …)

Применяет преобразование Кларксона-Вудраффа/скетч к входной матрице.

Специальные матрицы#

block_diag(*arrs)

Создать блочно-диагональный массив из предоставленных массивов.

circulant(c)

Построить циркулянтную матрицу.

companion(a)

Создать сопровождающую матрицу.

convolution_matrix(a, n[, mode])

Построить матрицу свертки.

dft(n[, scale])

Матрица дискретного преобразования Фурье.

fiedler(a)

Возвращает симметричную матрицу Фидлера

fiedler_companion(a)

Возвращает матрицу Фидлера-компаньона

hadamard(n[, dtype])

Построить матрицу Адамара.

hankel(c[, r])

Построить матрицу Ганкеля.

helmert(n[, full])

Создать матрицу Хельмерта порядка n.

hilbert(n)

Создать матрицу Гильберта порядка n.

invhilbert(n[, exact])

Вычисление обратной матрицы Гильберта порядка n.

leslie(f, s)

Создать матрицу Лесли.

pascal(n[, kind, exact])

Возвращает матрицу Паскаля размером n x n.

invpascal(n[, kind, exact])

Возвращает обратную матрицу Паскаля размера n x n.

toeplitz(c[, r])

Построить матрицу Тёплица.

Низкоуровневые процедуры#

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 – Низкоуровневые функции BLAS для Cython

scipy.linalg.cython_lapack – Низкоуровневые функции LAPACK для Cython