The LA_GM_LINEAR_MODEL function is used to solve a general Gauss-Markov linear model problem:
minimizex ||y||2 with constraint d = Ax + By
where A is an m-column by n-row array, B is a p-column by n-row array, and d is an n-element input vector with m £ n £ m+p.
The following items should be noted:
LA_ GM_LINEAR_MODEL is based on the following LAPACK routines:
For details see Anderson et al., LAPACK Users' Guide, 3rd ed., SIAM, 1999.
Result = LA_GM_LINEAR_MODEL( A, B, D, Y [, /DOUBLE] )
The result (x) is an m-element vector whose type is identical to A.
The m-by-n array used in the constraint equation.
The p-by-n array used in the constraint equation.
An n-element input vector used in the constraint equation.
Set this argument to a named variable, which will contain the p-element output vector.
Set this keyword to use double-precision for computations and to return a double-precision (real or complex) result. Set DOUBLE = 0 to use single-precision for computations and to return a single-precision (real or complex) result. The default is /DOUBLE if A is double precision, otherwise the default is DOUBLE = 0.
Given the constraint equation d = Ax + By, (where A, B, and d are defined in the program below) the following example program solves the general Gauss-Markov problem:
PRO ExLA_GM_LINEAR_MODEL ; Define some example coefficient arrays: a = [[2, 7, 4], $ [5, 1, 3], $ [3, 3, 6], $ [4, 5, 2]] b = [[-3, 2], $ [1, 5], $ [2, 9], $ [4, 1]] ; Define a sample left-hand side vector D: d = [-1, 2, -3, 4] ; Find and print the solution x: x = LA_GM_LINEAR_MODEL(a, b, d, y) PRINT, 'LA_GM_LINEAR_MODEL solution:' PRINT, X PRINT, 'LA_GM_LINEAR_MODEL 2-norm solution:' PRINT, Y END
When this program is compiled and run, IDL prints:
LA_GM_LINEAR_MODEL solution: 1.04668 0.350346 -1.28445 LA_GM_LINEAR_MODEL 2-norm solution: 0.151716 0.0235733