TMtx::GLMSolve Method

void GLMSolve(TMtx *B, TVec *D, TVec *X, TVec *Y);

Solves a general Gauss-Markov linear model (GLM) problem.

#NameTypeDescription
1BTMtx *
2DTVec *
3XTVec *
4YTVec *
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