Factorizations

Раздел Factorizations содержит функции для выполнения различных видов матричных разложений, используемых при численном решении систем линейных уравнений, анализе устойчивости и других задачах линейной алгебры. Эти разложения преобразуют исходную матрицу в более простые формы, что облегчает дальнейшие вычисления. Все функции реализованы с использованием LAPACK-подпрограмм и поддерживают типы double, float, complex и complexf.

Функции этого раздела применяются:

  • Для предварительной обработки матриц при решении систем линейных уравнений;
  • При расчете определителей, ранга и инверсии матриц;
  • Для оценки устойчивости численных методов;
  • При решении задач в спектральной теории и методах оптимизации.

Разложение матриц — ключевой этап во многих алгоритмах линейной алгебры, и данный раздел обеспечивает доступ к наиболее эффективным и проверенным методам факторизации.

Функция

Выполняемое действие

FactorizationPLU

Вычисляет LU-разложение общей матрицы A размером m на n с использованием частичного выбора ведущего элемента и перестановок строк. Разложение имеет вид A = P * L * U. LAPACK-функция GETRF.

FactorizationPLUQ

Computes an LU factorization of a general N-by-N matrix A with complete pivoting (row and column interchanges). The factorization has the form A = P * L * U * Q where P is a rows permutation matrix, L is lower triangular with unit diagonal elements, U is upper triangular, and Q is a columns permutation matrix. LAPACK function GETC2.

FactorizationPLUGeTrid

Вычисляет LU-разложение общей (несимметричной) трехдиагональной матрицы A размером n на n с использованием частичного выбора ведущего элемента и перестановок строк. Разложение имеет вид A = P * L * U. LAPACK-функция GTTRF.

FactorizationLDL

Вычисляет разложение для вещественной симметричной или комплексной эрмитовой матрицы A с использованием диагонального выбора ведущего элемента по методу Банча-Кауфмана. LAPACK-функции SYTRF и HETRF.

FactorizationLDLComplexSy

Вычисляет разложение вещественной комплексной симметричной (не эрмитово сопряженной!) матрицы A с использованием диагонального выбора ведущего элемента по методу Банча-Кауфмана. Функция LAPACK SYTRF.

FactorizationLDLSyTridPD

Вычисляет разложение симметричной положительно определенной (для вещественных данных) или эрмитовой положительно определенной (для комплексных данных) трехдиагональной матрицы A. LAPACK-функция PTTRF.

FactorizationCholesky

Вычисляет разложение для вещественной симметричной или комплексной эрмитовой положительно-определенной матрицы A. LAPACK-функция POTRF.

FactorizationCholeskySyPS

Вычисляет разложение Холецкого с полным выбором ведущего элемента (complete pivoting) для вещественной симметричной (или комплексной эрмитовой) положительно полуопределенной матрицы A размером n на n. Функция LAPACK PSTRF.

FactorizationPLURaw

Computes an LU factorization of a general M-by-N matrix A using partial pivoting with row interchanges. The factorization has the form A = P * L * U where P is a permutation matrix, L is lower triangular with unit diagonal elements (lower trapezoidal if m > n), and U is upper triangular (upper trapezoidal if m < n). LAPACK function GETRF.

FactorizationPLUQRaw

Computes an LU factorization of a general N-by-N matrix A with complete pivoting (row and column interchanges). The factorization has the form A = P * L * U * Q where P is a rows permutation matrix, L is lower triangular with unit diagonal elements, U is upper triangular, and Q is a columns permutation matrix. LAPACK function GETC2.

FactorizationPLUGeTridRaw

Computes an LU factorization of a general (non-symmetric) tridiagonal N-by-N matrix A using elimination with partial pivoting and row interchanges. The factorization has the form A = P * L * U where P is a permutation matrix, L is lower triangular with unit diagonal elements, and U is upper triangular. LAPACK function GTTRF.

FactorizationLDLRaw

Computes the factorization of a real symmetric or complex Hermitian matrix A using the Bunch-Kaufman diagonal pivoting method. LAPACK functions SYTRF, HETRF.