- LeastSquaresSolution
- LeastSquaresSolutionDC
- LeastSquaresSolutionSVD
- LeastSquaresSolutionWY
- LeastSquaresSolutionsQRPivot
- LeastSquaresSolutionQRTallSkinny
LeastSquaresSolutionWY
Решает переопределенные или недоопределенные вещественные / комплексные системы линейных уравнений, содержащие матрицу A размером m на n или ее транспонированную / сопряженно-транспонированную версию, с использованием QR- или LQ- разложения матрицы A с компактным WY-представлением матрицы Q. Предполагается, что A — это матрица полного ранга.
Предусмотрены следующие варианты:
1. При trans = 'N' и m >= n: решение методом наименьших квадратов выполняется для переопределенной системы, т.е. решается задача наименьших квадратов minimize || B - A*X ||.
2. При trans = 'N' и m < n: решение недоопределенной системы с минимальной нормой A * X = B.
3. При trans = 'T' и m >= n: решение недоопределенной системы с минимальной нормой A**T * X = B.
4. При trans = 'T' и m < n: решение методом наименьших квадратов выполняется для переопределенной системы, т.е. решается задача наименьших квадратов minimize || B - A**T * X ||.
LAPACK-функция GELST.
Вычисления для типа matrix<double>
bool matrix::LeastSquaresSolutionWY(
|
Вычисления для типа matrix<float>
bool matrixf::LeastSquaresSolutionWY(
|
Вычисления для типа matrix<complex>
bool matrixc::LeastSquaresSolutionWY(
|
Вычисления для типа matrix<complexf>
bool matrixcf::LeastSquaresSolutionWY(
|
Параметры
trans
[in] Значение перечисления ENUM_EQUATIONS_FORM, которое определяет форму системы уравнений.
Б
[in] Матрица B, столбцы которой представляют собой правые части систем линейных уравнений. Если это вектор B, здесь содержится одна правая часть.
X
[out] Матрица или вектор X с решениями линейной задачи наименьших квадратов.
residuals
[out] Матрица или вектор с суммами квадратов невязок для каждого решения (по столбцам). Значения определяются как сумма квадратов модулей элементов в этом столбце. Если trans='N' и m<=n или trans!='N' и m>=n, тогда матрица (вектор) residuals остается пустой.
Возвращаемое значение
Возвращает true в случае успеха и false в случае ошибки.
Примечание
Если trans='N': Матрица B должна иметь размер m на nrhs, где nrhs — количество векторов правой части. Матрица X имеет размер n на nrhs. Если m>=n, матрица X содержит nrhs решений задачи наименьших квадратов. Если m<n, матрица X содержит nrhs решений с минимальной нормой.
Если trans!='N'. Матрица B должна иметь размер n на nrhs, матрица X — размер m на nrhs. Если m>=n, матрица X содержит nrhs решений с минимальной нормой. Если m<n, матрица X содержит nrhs решений задачи наименьших квадратов.
Аббревиатура WY не является официальной расшифровкой имен или терминов в математике. Compact WY representation — это исторически сложившееся обозначение, пришедшее из оригинальной научной статьи, где впервые было предложено это представление:
Schreiber, R., & Van Loan, C. (1989). A Storage-Efficient WY Representation for Products of Householder Transformations. SIAM Journal on Scientific and Statistical Computing.
Для построения матрицы Q при QR- или LQ-факторизации используются отражения Хаусхолдера.
Q=H1H2…Hk,
где каждый Hi — это отражение. В классической реализации каждое отражение применяется по отдельности. В блочной реализации, чтобы ускорить вычисления и использовать преимущества BLAS, применяется компактное представление WY.
ENUM_EQUATIONS_FORM
Перечисление, определяющее форму вычисляемой системы уравнений.
Идентификатор |
Описание |
---|---|
EQUATIONSFORM_N |
'N' – линейная система с участием матрицы A (без транспонирования) |
EQUATIONSFORM_T |
'T' — линейная система с участием транспонированной матрицы A**T |
EQUATIONSFORM_C |
'C' — линейная система с участием сопряженно-транспонированной матрицы A**H |
Для вещественных матриц значение EQUATIONSFORM_C интерпретируется как EQUATIONSFORM_T.
Для комплексных матриц значение EQUATIONSFORM_T интерпретируется как EQUATIONSFORM_C.