Matrix.GLMSolve Method

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

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

#NameTypeDescription
1BTMtxsource TMtx
2DTVecsource TVec
3XTVecsource TVec
4YTVecsource TVec

Result: stored in self (calling object)

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