- PLULinearEquationsSolution
- PLUInverse
- PLUCondNumReciprocal
- PLUQLinearEquationsSolution
- PLUGeTridLinearEquationsSolution
- PLUGeTridCondNumReciprocal
- LDLLinearEquationsSolution
- LDLInverse
- LDLCondNumReciprocal
- LDLSyTridPDLinearEquationsSolution
- LDLSyTridPDCondNumReciprocal
- CholeskyLinearEquationsSolution
- CholeskyInverse
- CholeskyCondNumReciprocal
- SylvesterEquationSchur
- SylvesterEquationSchurBlocked
- Pseudo Inverse
- Polar Decomposition
Factored Calculations
Этот раздел справки описывает набор функций для численного решения задач линейной алгебры, основанных на факторизациях матриц и методах библиотеки LAPACK, обёрнутых в классы matrix, matrixf, matrixc и matrixcf.
Функции ориентированы на высокоэффективные и надёжные вычисления, применимые к различным типам матриц: вещественным и комплексным, одинарной и двойной точности. Они охватывают ключевые задачи прикладной линейной алгебры, включая:
- Решение систем линейных уравнений (СЛАУ);
- Оценку числа обусловленности матрицы;
- Обратные преобразования и вычисление обратных матриц;
- Специальные приёмы на основе SVD для получения псевдообратных и полярных разложений.
Функции работают в связке с предварительными матричными факторизациями, такими как Cholesky, LDL, PLU и другими, реализованными в соответствующих модулях. Используемые алгоритмы повторяют поведение LAPACK и позволяют эффективно обрабатывать как плотные, так и специализированные структуры матриц (например, тридиагональные).
Ниже представлены все доступные функции, сгруппированные по используемому методу факторизации.
Функция |
Выполняемое действие |
---|---|
Solves a system of linear equations A * X = B, A**T * X = B, or A**H * X = B with an LU-factored square coefficient matrix AF computed by FactorizationPLURaw, with multiple right-hand sides. LAPACK function GETRS. |
|
Computes the inverse of an LU-factored general matrix AF computed by FactorizationPLURaw. LAPACK function GETRI. |
|
Estimates the reciprocal of the condition number of a general matrix A in either the one-norm or infinity-norm, using the LU factorization computed by FactorizationPLURaw. LAPACK function GECON. |
|
Solves a system of linear equations A * X = scale * RHS with a general N-by-N matrix A using the LU-factoization with complete pivoting computed by FactorizationPLUQRaw. LAPACK function GESC2. |
|
Solves a system of linear equations A * X = B, A**T * X = B, or A**H * X = B with a tridiagonal matrix A using the LU-factorization computed by FactorizationPLUGeTridRaw, with multiple right-hand sides. LAPACK function GTTRS. |
|
Estimates the reciprocal of the condition number of a general tridiagonal matrix A in either the one-norm or infinity-norm, using the LU factorization computed by FactorizationPLUGeTridRaw. LAPACK function GTCON. |
|
Solves a system of linear equations A * X = B with a real symmetric or complex Hermitian indefinite matrix using the factorization A = U**T * D * U or A = L * D * L**T computed by FactorizationLDLRaw, with multiple right-hand sides. LAPACK functions SYTRS, HETRS. |
|
Computes the inverse of a real symmetric or complex Hermitian indefinite matrix using the factorization A = U**T * D * U or A = L * D * L**T computed by FactorizationLDLRaw. LAPACK functions SYTRI, HETRI. |
|
Estimates the reciprocal of the condition number of a real symmetric or complex Hermitian indefinite matrix A, using the LDLT factorization computed by FactorizationLDLRaw. LAPACK functions SYCON, HECON. |
|
Solves a system of linear equations A * X = B with a real symmetric or complex Hermitian positive-definite tridiagonal matrix using the factorization A = L * D * L**T computed by FactorizationLDLSyTridPD, with multiple right-hand sides. LAPACK function PTTRS. |
|
Estimates the reciprocal of the condition number of a real symmetric or complex Hermitian positive-definite tridiagonal matrix A using the LDLT factorization computed by FactorizationLDLSyTridPD. LAPACK function PTCON. |
|
Solves a system of linear equations A * X = B with a real symmetric or complex Hermitian positive-definite matrix using the factorization A = L * L**T computed by FactorizationCholesky, with multiple right-hand sides. LAPACK function POTRS. |
|
Computes the inverse of a real symmetric or complex Hermitian positive-definite matrix using the LLT factorization computed by FactorizationCholesky. LAPACK function POTRI. |
|
Estimates the reciprocal of the condition number of a real symmetric or complex Hermitian positive-definite matrix A using the LDL factorization computed by FactorizationCholesky. LAPACK function POCON. |
|
Solves Sylvester equation for real quasi-triangular or complex triangular matrices: A*X + X*B = C where A and B are both upper triangular. A is m-by-m and B is n-by-n; the right hand side C and the solution X are m-by-n. LAPACK function TRSYL. |
|
Solves Sylvester equation for real quasi-triangular or complex triangular matrices: A*X + X*B = C where A and B are both upper triangular. A is m-by-m and B is n-by-n; the right hand side C and the solution X are m-by-n. LAPACK function TRSYL3. This is the block (BLAS level 3) version of TRSYL. Faster up to 5 times but not so accurate. |
|
There is no special function in the OpenBLAS library to calculate the pseudo-inverse of a matrix. However, for this purpose can be used singular value decomposition (SVD) |
|
There is no special function in the OpenBLAS library to calculate the polar decomposition of a matrix. However, for this purpose can be used singular value decomposition (SVD) |
Функции обеспечивают поддержку различных типов матриц (вещественных, комплексных, одинарной и двойной точности) и охватывают следующие ключевые задачи.
Оценка числа обусловленности (Condition Number Estimation)
В отличие от истинного числа обусловленности, оценка производится приблизительно, но гораздо быстрее. Здесь CondNumReciprocal обозначает обратное инвертированное число обусловенности (то есть 1/cond_number).
Функции типа *CondNumReciprocal предназначены для оценки обратной величины числа обусловленности матрицы:
- CholeskyCondNumReciprocal — для положительно определённых матриц с факторизацией LLT;
- LDLCondNumReciprocal — для неопределённых симметричных или эрмитовых матриц с факторизацией LDL;
- LDLSyTridPDCondNumReciprocal — для положительно определённых симметричных тридиагональных матриц;
- PLUCondNumReciprocal, PLUGeTridCondNumReciprocal — для обобщённых и тридиагональных матриц с LU-факторизацией.
Обратные матрицы (Matrix Inverse)
Функции типа *Inverse вычисляют обратную матрицу на основе соответствующей факторизации:
- CholeskyInverse, LDLInverse, PLUInverse — для различных форм факторизаций;
- используют массив индексов ipiv, если требуется информация о перестановках.
Решение СЛАУ (Linear System Solvers)
Функции *LinearEquationsSolution решают СЛАУ вида A * X = B:
- Поддерживаются как матричные, так и векторные правые части;
- Учитывается возможность транспонирования (или эрмитового сопряжения) матрицы коэффициентов через ENUM_EQUATIONS_FORM;
- Отдельные функции предусмотрены для тридиагональных и обобщённых матриц.
Поддержка расширенных LU-факторизаций
Функция PLUQLinearEquationsSolution решает систему с масштабированием:
A * X = scale * B |
на основе полной LU-факторизации с перестановками по строкам и столбцам.
Специальные методы (на основе SVD)
Хотя функции библиотеки напрямую не реализуют полярное разложение или псевдообратную матрицу, раздел содержит примеры реализации на базе сингулярного разложения:
- PolarDecomposition — разложение A = Q * P, где Q — ортогональная, P — симметричная положительно определённая матрица;
- PseudoInverse — вычисление псевдообратной матрицы A+ = V * Σ⁺ * Uᵀ.
Примечания
- Все функции возвращают true при успехе, false при ошибке.
- Необходимыми предпосылками являются факторизации, выполненные заранее (FactorizationCholesky, FactorizationLDLRaw, GETRF и т.д.).
- Результаты вычислений могут быть чувствительны к численной стабильности, особенно при малых значениях rcond.