PLUQLinearEquationsSolution

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

A * X = scale * RHS

для общей матрицы A размером n на n, используя LU-разложение с полной перестановкой, вычисленное методом FactorizationPLUQRaw. LAPACK-функция GESC2.

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

bool  matrix::PLUQLinearEquationsSolution(
   long[]&             ipiv,         // массив индексов перестановок
   long[]&             jpiv,         // массив индексов перестановок
   matrix&             B,            // матрица B правой части
   matrix&             X,            // матрица решений X
   double&             scale         // коэффициент масштабирования
   );
 
bool  matrix::PLUQLinearEquationsSolution(
   long[]&             ipiv,         // массив индексов перестановок
   long[]&             jpiv,         // массив индексов перестановок
   vector&             B,            // вектор B правой части
   vector&             X,            // вектор решений X
   double&             scale         // коэффициент масштабирования
   );

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

bool  matrixf::PLUQLinearEquationsSolution(
   long[]&             ipiv,         // массив индексов перестановок
   long[]&             jpiv,         // массив индексов перестановок
   matrixf&            B,            // матрица B правой части
   matrixf&            X,            // матрица решений X
   float&              scale         // коэффициент масштабирования
   );
 
bool  matrixf::PLUQLinearEquationsSolution(
   long[]&             ipiv,         // массив индексов перестановок
   long[]&             jpiv,         // массив индексов перестановок
   vectorf&            B,            // вектор B правой части
   vectorf&            X,            // вектор решений X
   float&              scale         // коэффициент масштабирования
   );

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

bool  matrixc::PLUQLinearEquationsSolution(
   long[]&             ipiv,         // массив индексов перестановок
   long[]&             jpiv,         // массив индексов перестановок
   matrixc&            B,            // матрица B правой части
   matrixc&            X,            // матрица решений X
   double&             scale         // коэффициент масштабирования
   );
 
bool  matrixc::PLUQLinearEquationsSolution(
   long[]&             ipiv,         // массив индексов перестановок
   long[]&             jpiv,         // массив индексов перестановок
   vectorc&            B,            // вектор B правой части
   vectorc&            X,            // вектор решений X
   double&             scale         // коэффициент масштабирования
   );

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

bool  matrixcf::PLUQLinearEquationsSolution(
   long[]&             ipiv,         // массив индексов перестановок
   long[]&             jpiv,         // массив индексов перестановок
   matrixcf&           B,            // матрица B правой части
   matrixcf&           X,            // матрица решений X
   float&              scale         // коэффициент масштабирования
   );
 
bool  matrixcf::PLUQLinearEquationsSolution(
   long[]&             ipiv,         // массив индексов перестановок
   long[]&             jpiv,         // массив индексов перестановок
   vectorcf&           B,            // вектор B правой части
   vectorcf&           X,            // вектор решений X
   float&              scale         // коэффициент масштабирования
   );

Параметры

ipiv

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

jpiv

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

B

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

X

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

scale

[out]  Коэффициент масштабирования; значение scale выбирается в диапазоне 0 <= scale <= 1 для предотвращения переполнения при решении.

 

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

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

Примечание

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

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