FactorizationQRPivot

Вычисляет QR-разложение общей матрицы размера m на n с перестановкой столбцов: A * P = Q * R. LAPACK-функция GEQP3.

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

bool  matrix::FactorizationQRPivot(
   bool            reduced,      // режим вычислений: укороченный или полный 
   long[]&         jpvt,         // массив с предопределенной перестановкой столбцов
   matrix&         Q,            // ортогональная матрица Q
   matrix&         R,            // верхнетреугольная матрица R
   matrix&         P             // матрица перестановок
   );

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

bool  matrix::FactorizationQRPivot(
   bool            reduced,      // режим вычислений: укороченный или полный 
   long[]&         jpvt,         // массив с предопределенной перестановкой столбцов
   matrixf&        Q,            // ортогональная матрица Q
   matrixf&        R,            // верхнетреугольная матрица R
   matrixf&        P             // матрица перестановок
   );

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

bool  matrix::FactorizationQRPivot(
   bool            reduced,      // режим вычислений: укороченный или полный 
   long[]&         jpvt,         // массив с предопределенной перестановкой столбцов
   matrixc&        Q,            // унитарная матрица Q
   matrixc&        R,            // верхнетреугольная матрица R
   matrixc&        P             // матрица перестановок
   );

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

bool  matrix::FactorizationQRPivot(
   bool            reduced,      // режим вычислений: укороченный или полный 
   long[]&         jpvt,         // массив с предопределенной перестановкой столбцов
   matrixcf&       Q,            // унитарная матрица Q
   matrixcf&       R,            // верхнетреугольная матрица R
   matrixcf&       P             // матрица перестановок
   );

Параметры

reduced

[in]  Режим вычислений. Если параметр reduced установлен в значение true, тогда матрицы Q и R вычисляются с размерностями (M,K), (K,N). Если параметр reduced установлен в значение false, выполняется полный расчет матриц Q, R с размерностями (M,M), (M,N).

jpvt

[in]  Целочисленный массив размерности n. Если jpvt(i) ≠ 0, то i-й столбец матрицы A перемещается в начало матрицы AP до начала вычислений и фиксируется на этом месте в ходе разложения. Если jpvt(i) = 0, то i-й столбец матрицы A считается свободным (т.е. он может быть перестановлен с любым другим свободным столбцом во время вычислений). Если массив jpvt имеет нулевой размер (или не инициализирован), предполагается, что все столбцы матрицы A свободны.

Q

[out] Ортогональная или унитарная матрица Q.

R

[out] Верхнетреугольная матрица R.

P

[out]  Матрица перестановок P размером n на n.

 

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

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

Примечание

Если reduced = true

  При m >= n матрица Q имеет размер m на n, матрица R — n на n.

  При m < n матрица Q имеет размер m на m, матрица R — m на n.

Если параметр reduced = false, матрица Q имеет размер m на m, а матрица R — m на n.