FactorizationLDLSyTridPD

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

   A = L * D * L**T, если используется нижнетреугольная (или симметричная) матрица A,

или

   A = U**T * D * U, если используется верхнетреугольная матрица A,

где L — нижнетреугольная матрица с единицами на диагонали, U — верхнетреугольная матрица с единицами на диагонали. D — диагональная матрица. LAPACK-функция PTTRF.

Вычисления для типа matrix<double>

bool  matrix::FactorizationLDLSyTridPD(
   matrix&         L,            // нижнетреугольная или верхнетреугольная матрица
   matrix&         D             // диагональная матрица D
   );

Вычисления для типа matrix<float>

bool  matrix::FactorizationLDLSyTridPD(
   matrixf&        L,            // нижнетреугольная или верхнетреугольная матрица
   matrixf&        D             // диагональная матрица D
   );

Вычисления для типа matrix<complex>

bool  matrix::FactorizationLDLSyTridPD(
   matrixc&        L,            // нижнетреугольная или верхнетреугольная матрица
   matrixc&        D             // диагональная матрица D
   );

Вычисления для типа matrix<complexf>

bool  matrix::FactorizationLDLSyTridPD(
   matrixcf&       L,            // нижнетреугольная или верхнетреугольная матрица
   matrixcf&       D             // диагональная матрица D
   );

Параметры

L

[out] Нижнетреугольная или верхнетреугольная матрица с единицами по диагонали.

D

[out]  Диагональная матрица D.

 

Возвращаемое значение

Возвращает true в случае успеха и false в случае ошибки.

Примечание

На вход можно подать симметричную (эрмитову), верхнетреугольную или нижнетреугольную матрицу. Треугольные матрицы подразумеваются симметричными (эрмитово-сопряженными).

Матрицы L и D могут быть использованы для последующих вычислений с помощью методов LDLSyTridPDLinearEquationsSolution и LDLSyTridPDCondNumReciprocal.