- LeastSquaresSolution
- LeastSquaresSolutionDC
- LeastSquaresSolutionSVD
- LeastSquaresSolutionWY
- LeastSquaresSolutionsQRPivot
- LeastSquaresSolutionQRTallSkinny
LeastSquaresSolutionDC
Вычисляет решение задачи наименьших квадратов с минимальной нормой для вещественной или комплексной системы minimize 2-norm(| b - A*x |) с использованием сингулярного разложения (SVD) матрицы A. Матрица A имеет размер m на n и может быть вырожденной по рангу. Алгоритм разделяй и властвуй (divide and conquer) предъявляет минимальные требования к точности арифметики с плавающей запятой. LAPACK-функция GELSD.
Вычисления для типа matrix<double>
bool matrix::LeastSquaresSolutionDC(
|
Вычисления для типа matrix<float>
bool matrixf::LeastSquaresSolutionDC(
|
Вычисления для типа matrix<complex>
bool matrixc::LeastSquaresSolutionDC(
|
Вычисления для типа matrix<complexf>
bool matrixcf::LeastSquaresSolutionDC(
|
Параметры
Б
[in] Матрица B, столбцы которой представляют собой правые части систем линейных уравнений. Если это вектор B, здесь содержится одна правая часть.
rcond
[in] Значение rcond используемое для определения эффективного ранга матрицы A. Сингулярные значения S(i) <= rcond*S(1) считаются равными нулю. Если rcond < 0, используется машинная точность.
X
[out] Матрица или вектор X с решениями линейной задачи наименьших квадратов.
residuals
[out] Матрица или вектор с суммами квадратов невязок по каждому решению (по столбцам). Значения определяются как сумма квадратов элементов в этом столбце. Если m<=n, тогда матрица (вектор) residuals остается пустой.
singular_values
[out] Вектор вычисленных сингулярных значений.
rank
[out] Эффективный ранг матрицы A, т.е. количество сингулярных значений, превышающих rcond*S(1).
Возвращаемое значение
Возвращает true в случае успеха и false в случае ошибки.
Примечание
Матрица B должна иметь размер m на nrhs, где nrhs — количество векторов правой части. Матрица X имеет размер n на nrhs.
Число обусловленности матрицы A в 2-норме = S(1)/S(min(m,n)).
Решение задачи осуществляется в три этапа:
1. Сведение матрицы коэффициентов A к бидиагональному виду с помощью преобразований Хаусхолдера — исходная задача преобразуется в бидиагональную задачу наименьших квадратов (BLS).
2. Решение BLS с помощью алгоритма "разделяй и властвуй".
3. Обратное применение всех преобразований Хаусхолдера для получения решения исходной задачи наименьших квадратов.