Welcome to the Harris Geospatial product documentation center. Here you will find reference guides, help documents, and product libraries.
﻿

>  Docs Center  >  IDL Reference  >  Math - LAPACK  >  LA_GM_LINEAR_MODEL

### LA_GM_LINEAR_MODEL

LA_GM_LINEAR_MODEL

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 mnm+p.

The following items should be noted:

• If A has full column rank m and the array (A B) has full row rank n, then there is a unique solution x and a minimal 2-norm solution y.
• If B is square and nonsingular then the problem is equivalent to a weighted linear least-squares problem, minimizex ||B -1(Ax - d)||2.
• If B is the identity matrix then the problem reduces to the ordinary linear least-squares problem, minimizex ||Ax - d||2.

LA_ GM_LINEAR_MODEL is based on the following LAPACK routines:

 Output Type LAPACK Routine Float sggglm Double dggglm Complex cggglm Double complex zggglm

## Examples

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:

`; 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`

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`

## Syntax

Result = LA_GM_LINEAR_MODEL( A, B, D, Y [, /DOUBLE] )

## Return Value

The result (x) is an m-element vector whose type is identical to A.

## Arguments

### A

The m-by-n array used in the constraint equation.

### B

The p-by-n array used in the constraint equation.

### D

An n-element input vector used in the constraint equation.

### Y

Set this argument to a named variable, which will contain the p-element output vector.

## Keywords

### DOUBLE

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.

## Version History

 5.6 Introduced

## Resources and References

For details see Anderson et al., LAPACK Users' Guide, 3rd ed., SIAM, 1999.