- LeastSquaresSolution
- LeastSquaresSolutionDC
- LeastSquaresSolutionSVD
- LeastSquaresSolutionWY
- LeastSquaresSolutionsQRPivot
- LeastSquaresSolutionQRTallSkinny
LeastSquaresSolutionQRPivot
Вычисляет решение задачи наименьших квадратов с минимальной нормой для вещественной или комплексной системы minimize 2-norm(| b - A*x |) с использованием полного ортогонального разложения матрицы A. Матрица A имеет размер m на n и может быть вырожденной по рангу. Функция LAPACL GELSY.
Вычисления для типа matrix<double>
bool matrix::LeastSquaresSolutionQRPivot(
|
Вычисления для типа matrix<float>
bool matrixf::LeastSquaresSolutionQRPivot(
|
Вычисления для типа matrix<complex>
bool matrixc::LeastSquaresSolutionQRPivot(
|
Вычисления для типа matrix<complexf>
bool matrixcf::LeastSquaresSolutionQRPivot(
|
Параметры
Б
[in] Матрица B, столбцы которой представляют собой правые части систем линейных уравнений. Если это вектор B, здесь содержится одна правая часть.
jpvt
[in] Целочисленный массив размерности n. Если jpvt(i) != 0, то i-й столбец матрицы A переставляется в начало AP, в противном случае столбец i остается свободным. Если массив jpvt имеет нулевой размер (или не инициализирован), предполагается, что все столбцы матрицы A свободны.
rcond
[in] rcond используется для определения эффективного ранга матрицы A, который определяется как порядок наибольшей ведущей треугольной подматрицы R11 (см. Примечание 2) в QR-разложении с перестановкой столбцов, где оценка числа обусловленности меньше < 1/rcond.
X
[out] Матрица или вектор X с решениями линейной задачи наименьших квадратов.
jpvt_out
[out] Целочисленный массив с результатом перестановок столбцов. Если jpvt(i) = k, тогда i-й столбец матрицы AP соответствует k-му столбцу матрицы A.
rank
[out] Эффективный ранг матрицы A, т.е. порядок подматрицы R11 (см. Примечание 2). Это также соответствует порядку подматрицы T11 в полном ортогональном разложении матрицы A.
Возвращаемое значение
Возвращает true в случае успеха и false в случае ошибки.
Примечание
1. Матрица B должна иметь размер m на nrhs, где nrhs — количество векторов правой части. Матрица X имеет размер n на nrhs.
2. Алгоритм сначала вычисляет QR-разложение с перестановкой столбцов:
A * P = Q * [ R11 R12 ]
[ 0 R22 ]
где R11 — наибольшая ведущая подматрица, для которой оценка числа обусловленности меньше 1/rcond. Порядок R11 (rank) и есть эффективный ранг матрицы A.
Затем подматрица R22 считается пренебрежимо малой, а R12 обнуляется с помощью ортогональных преобразований справа, что приводит к полному ортогональному разложению:
A * P = Q * [ T11 0 ] * Z
[ 0 0 ]
Искомое решение с минимальной нормой выражается так:
X = P * Z**T [ inv(T11)*Q1**T*B ]
[ 0 ]
где Q1 состоит из первых rank столбцов матрицы Q.