Welcome to the L3 Harris Geospatial documentation center. Here you will find reference guides and help documents.
﻿ >  Docs Center  >  IDL Reference  >  Math - LAPACK  >  LA_LEAST_SQUARE_EQUALITY

### LA_LEAST_SQUARE_EQUALITY

LA_LEAST_SQUARE_EQUALITY

The LA_LEAST_SQUARE_EQUALITY function is used to solve the linear least-squares problem:

Minimizex ||Ax - c||2 with constraint Bx = d

where A is an n-column by m-row array, B is an n-column by p-row array, c is an m-element input vector, and d is an p-element input vector with p n m+p. If B has

full row rank p and the array has full column rank n, then a unique solution exists.

LA_ LEAST_SQUARE_EQUALITY is based on the following LAPACK routines:

 Output Type LAPACK Routine Float sgglse Double dgglse Complex cgglse Double complex zgglse

## Examples

Given the following system of equations:

`2t + 5u + 3v + 4w = 9`
`7t +  u + 3v + 5w = 1 `
`4t + 3u + 6v + 2w = 2`

with constraints,

`-3t +  u + 2v + 4w = -4`
` 2t + 5u + 9v + 1w =  4`

find the solution using the following code:

`; Define the coefficient array:`
`a = [[2, 5, 3, 4], \$`
`   [7, 1, 3, 5], \$`
`   [4, 3, 6, 2]]`
`; Define the constraint array:`
`b = [[-3, 1, 2, 4], \$`
`[2, 5, 9, 1]]`
` `
`; Define the right-hand side vector c:`
`c = [9, 1, 2]`
`; Define the constraint right-hand side d:`
`d = [-4, 4]`
` `
`; Find and print the minimum norm solution of a:`
`x = LA_LEAST_SQUARE_EQUALITY(a, b, c, d)`
`PRINT, 'LA_LEAST_SQUARE_EQUALITY solution:'`
`PRINT, x`

IDL prints:

`LA_LEAST_SQUARE_EQUALITY solution:`
`     0.651349      2.72695     -1.14638    -0.620036`

## Syntax

Result = LA_LEAST_SQUARE_EQUALITY( A, B, C, D [, /DOUBLE] [, RESIDUAL=variable] [, STATUS=variable] )

## Return Value

The result (x) is an n-element vector.

## Arguments

### A

The n-by-m array used in the least-squares minimization.

### B

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

### C

An m-element input vector containing the right-hand side of the least-squares system.

### D

A p-element input vector containing the right-hand side of the equality constraint.

## 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.

### RESIDUAL

Set this keyword to a named variable in which to return a scalar giving the residual sum-of-squares for Result. If n = m + p then RESIDUAL will be zero.

### STATUS

Set this keyword to a named variable that will contain the status of the computation. Possible values are:

• STATUS = 0: The computation was successful.
• STATUS = 1: The factorization of B is singular, so rank(B) < p. No least squares solution can be computed.
• STATUS = 2: The factorization of A is singular, so rank < n. No least squares solution can be computed.
• STATUS < 0: One of the input arguments had an illegal value.

Note: If STATUS is not specified, any error messages will output to the screen.

## Version History

 5.6 Introduced

## Resources and References

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