void GLMSolve(TMtx *B, TVec *D, TVec *X, TVec *Y);
Solves a general Gauss-Markov linear model (GLM) problem.
Remarks:
The routine solves a general Gauss-Markov linear model (GLM) problem:
minimize || y ||_2 subject to d = A*x + B*y
x
where A is an N-by-M matrix, B is an N-by-P matrix, and d is a given N-vector. It is assumed that M <= N <= M+P, and
rank(A) = M and rank( A B ) = N.
Under these assumptions, the constrained equation is always consistent, and there is a unique solution x and a minimal 2-norm solution y, which is obtained using a generalized QR factorization of the matrices (A, B) given by
A = Q*(R), B = Q*T*Z
(0)
In particular, if matrix B is square nonsingular, then the problem GLM is equivalent to the following weighted linear least squares problem
minimize || inv(B)*(d-A*x) ||_2
x
where inv(B) denotes the inverse of B. The sign _2, denotes Norm L2.
References:
1.) Lapack v3.4 source code
Declared in Dew::Math::TMtx · Dew.Math/MtxVec.h · Cross-compiler