PLULinearEquationsSolution

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

A * X = B,  A**T * X = B или A**H * X = B

с использованием LU-разложения квадратной матрицы коэффициентов AF, вычисленного методом FactorizationPLURaw, для нескольких правых частей. LAPACK-функция GETRS.

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

bool  matrix::PLULinearEquationsSolution(
   long[]&             ipiv,         // массив индексов перестановок
   ENUM_EQUATIONS_FORM trans,        // форма системы уравнений
   matrix&             B,            // матрица B правой части
   matrix&             X             // матрица решений X
   );
 
bool  matrix::PLULinearEquationsSolution(
   long[]&             ipiv,         // массив индексов перестановок
   ENUM_EQUATIONS_FORM trans,        // форма системы уравнений
   vector&             B,            // вектор B правой части
   vector&             X             // вектор решений X
   );

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

bool  matrixf::PLULinearEquationsSolution(
   long[]&             ipiv,         // массив индексов перестановок
   ENUM_EQUATIONS_FORM trans,        // форма системы уравнений
   matrixf&            B,            // матрица B правой части
   matrixf&            X             // матрица решений X
   );
 
bool  matrixf::PLULinearEquationsSolution(
   long[]&             ipiv,         // массив индексов перестановок
   ENUM_EQUATIONS_FORM trans,        // форма системы уравнений
   vectorf&            B,            // вектор B правой части
   vectorf&            X             // вектор решений X
   );

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

bool  matrixc::PLULinearEquationsSolution(
   long[]&             ipiv,         // массив индексов перестановок
   ENUM_EQUATIONS_FORM trans,        // форма системы уравнений
   matrixc&            B,            // матрица B правой части
   matrixc&            X             // матрица решений X
   );
 
bool  matrixc::LinearEquationsSolution(
   long[]&             ipiv,         // массив индексов перестановок
   ENUM_EQUATIONS_FORM trans,        // форма системы уравнений
   vectorc&            B,            // вектор B правой части
   vectorc&            X             // вектор решений X
   );

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

bool  matrixcf::PLULinearEquationsSolution(
   long[]&             ipiv,         // массив индексов перестановок
   ENUM_EQUATIONS_FORM trans,        // форма системы уравнений
   matrixcf&           B,            // матрица B правой части
   matrixcf&           X             // матрица решений X
   );
 
bool  matrixcf::PLULinearEquationsSolution(
   long[]&             ipiv,         // массив индексов перестановок
   ENUM_EQUATIONS_FORM trans,        // форма системы уравнений
   vectorcf&           B,            // вектор B правой части
   vectorcf&           X             // вектор решений X
   );

Параметры

ipiv

[in]  Массив индексов перестановок, полученный в результате выполнения функции GETRF.

trans

[in]  Значение перечисления ENUM_EQUATIONS_FORM, которое определяет форму системы уравнений.

B

[in]  Матрица B, столбцы которой представляют собой правые части систем линейных уравнений. Если это вектор B, здесь содержится одна правая часть.

X

[out]  Матрица или вектор X с решениями системы линейных уравнений.

 

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

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

Примечание

Метод применяется к матрице AF, полученной с помощью функции GETRF.

Выходная матрица X имеет те же размеры, что и входная матрица B. Выходной вектор X имеет ту же размерность, что и входной вектор B.

ENUM_EQUATIONS_FORM

Перечисление, определяющее форму вычисляемой системы уравнений.

Идентификатор

Описание

EQUATIONSFORM_N

'N': A * X = B  (без транспонирования)

EQUATIONSFORM_T

'T': A**T * X = B  (транспонированная матрица A)

EQUATIONSFORM_C

'C': A**H * X = B  (сопряженно-транспонированная матрица A)

Для вещественных матриц значение EQUATIONSFORM_C интерпретируется как EQUATIONSFORM_T.