·  Home
+   man pages
 -> Linux -> FreeBSD -> OpenBSD -> NetBSD -> Tru64 Unix -> HP-UX 11i -> IRIX
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

man pages->IRIX man pages -> complib/dgels (3)
 Title
 Content
 Arch
 Section All Sections 1 - General Commands 2 - System Calls 3 - Subroutines 4 - Special Files 5 - File Formats 6 - Games 7 - Macros and Conventions 8 - Maintenance Commands 9 - Kernel Interface n - New Commands

### Contents

```
DGELS(3F)							     DGELS(3F)

```

### NAME[Toc][Back]

```     DGELS - solve overdetermined or underdetermined real linear systems
involving an M-by-N matrix	A, or its transpose, using a QR	or LQ
factorization of A
```

### SYNOPSIS[Toc][Back]

```     SUBROUTINE	DGELS( TRANS, M, N, NRHS, A, LDA, B, LDB, WORK,	LWORK, INFO )

CHARACTER     TRANS

INTEGER       INFO, LDA, LDB, LWORK, M, N, NRHS

DOUBLE	       PRECISION A( LDA, * ), B( LDB, *	), WORK( LWORK )
```

### PURPOSE[Toc][Back]

```     DGELS solves overdetermined or underdetermined real linear	systems
involving an M-by-N matrix	A, or its transpose, using a QR	or LQ
factorization of A.  It is	assumed	that A has full	rank.

The following options are provided:

1.	If TRANS = 'N' and m >=	n:  find the least squares solution of
an overdetermined system, i.e.,	solve the least	squares	problem
minimize || B - A*X ||.

2.	If TRANS = 'N' and m < n:  find	the minimum norm solution of
an underdetermined system A * X	= B.

3.	If TRANS = 'T' and m >=	n:  find the minimum norm solution of
an undetermined	system A**T * X	= B.

4.	If TRANS = 'T' and m < n:  find	the least squares solution of
an overdetermined system, i.e.,	solve the least	squares	problem
minimize || B - A**T * X ||.

Several right hand	side vectors b and solution vectors x can be handled
in	a single call; they are	stored as the columns of the M-by-NRHS right
hand side matrix B	and the	N-by-NRHS solution matrix X.

```

### ARGUMENTS[Toc][Back]

```     TRANS   (input) CHARACTER
= 'N': the	linear system involves A;
= 'T': the	linear system involves A**T.

M	     (input) INTEGER
The number	of rows	of the matrix A.  M >= 0.

N	     (input) INTEGER
The number	of columns of the matrix A.  N >= 0.

Page 1

DGELS(3F)							     DGELS(3F)

NRHS    (input) INTEGER
The number	of right hand sides, i.e., the number of columns of
the matrices B and	X. NRHS	>=0.

A	     (input/output) DOUBLE PRECISION array, dimension (LDA,N)
On	entry, the M-by-N matrix A.  On	exit, if M >= N, A is
overwritten by details of its QR factorization as returned	by
DGEQRF; if	M <  N,	A is overwritten by details of its LQ
factorization as returned by DGELQF.

LDA     (input) INTEGER
The leading dimension of the array	A.  LDA	>= max(1,M).

B	     (input/output) DOUBLE PRECISION array, dimension (LDB,NRHS)
On	entry, the matrix B of right hand side vectors,	stored
columnwise; B is M-by-NRHS	if TRANS = 'N',	or N-by-NRHS if	TRANS
= 'T'.  On	exit, B	is overwritten by the solution vectors,	stored
columnwise:  if TRANS = 'N' and m >= n, rows 1 to n of B contain
the least squares solution	vectors; the residual sum of squares
for the solution in each column is	given by the sum of squares of
elements N+1 to M in that column; if TRANS	= 'N' and m < n, rows
1 to N of B contain the minimum norm solution vectors; if TRANS =
'T' and m >= n, rows 1 to M of B contain the minimum norm
solution vectors; if TRANS	= 'T' and m < n, rows 1	to M of	B
contain the least squares solution	vectors; the residual sum of
squares for the solution in each column is	given by the sum of
squares of	elements M+1 to	N in that column.

LDB     (input) INTEGER
The leading dimension of the array	B. LDB >= MAX(1,M,N).

WORK    (workspace/output)	DOUBLE PRECISION array,	dimension (LWORK)
On	exit, if INFO =	0, WORK(1) returns the optimal LWORK.

LWORK   (input) INTEGER
The dimension of the array	WORK.  LWORK >=	min(M,N) +
MAX(1,M,N,NRHS).  For optimal performance,	LWORK >= min(M,N) +
MAX(1,M,N,NRHS) * NB where	NB is the optimum block	size.

INFO    (output) INTEGER
= 0:  successful exit
< 0:  if INFO = -i, the i-th argument had an illegal value
DGELS(3F)							     DGELS(3F)

```

### NAME[Toc][Back]

```     DGELS - solve overdetermined or underdetermined real linear systems
involving an M-by-N matrix	A, or its transpose, using a QR	or LQ
factorization of A
```

### SYNOPSIS[Toc][Back]

```     SUBROUTINE	DGELS( TRANS, M, N, NRHS, A, LDA, B, LDB, WORK,	LWORK, INFO )

CHARACTER     TRANS

INTEGER       INFO, LDA, LDB, LWORK, M, N, NRHS

DOUBLE	       PRECISION A( LDA, * ), B( LDB, *	), WORK( LWORK )
```

### PURPOSE[Toc][Back]

```     DGELS solves overdetermined or underdetermined real linear	systems
involving an M-by-N matrix	A, or its transpose, using a QR	or LQ
factorization of A.  It is	assumed	that A has full	rank.

The following options are provided:

1.	If TRANS = 'N' and m >=	n:  find the least squares solution of
an overdetermined system, i.e.,	solve the least	squares	problem
minimize || B - A*X ||.

2.	If TRANS = 'N' and m < n:  find	the minimum norm solution of
an underdetermined system A * X	= B.

3.	If TRANS = 'T' and m >=	n:  find the minimum norm solution of
an undetermined	system A**T * X	= B.

4.	If TRANS = 'T' and m < n:  find	the least squares solution of
an overdetermined system, i.e.,	solve the least	squares	problem
minimize || B - A**T * X ||.

Several right hand	side vectors b and solution vectors x can be handled
in	a single call; they are	stored as the columns of the M-by-NRHS right
hand side matrix B	and the	N-by-NRHS solution matrix X.

```

### ARGUMENTS[Toc][Back]

```     TRANS   (input) CHARACTER
= 'N': the	linear system involves A;
= 'T': the	linear system involves A**T.

M	     (input) INTEGER
The number	of rows	of the matrix A.  M >= 0.

N	     (input) INTEGER
The number	of columns of the matrix A.  N >= 0.

Page 1

DGELS(3F)							     DGELS(3F)

NRHS    (input) INTEGER
The number	of right hand sides, i.e., the number of columns of
the matrices B and	X. NRHS	>=0.

A	     (input/output) DOUBLE PRECISION array, dimension (LDA,N)
On	entry, the M-by-N matrix A.  On	exit, if M >= N, A is
overwritten by details of its QR factorization as returned	by
DGEQRF; if	M <  N,	A is overwritten by details of its LQ
factorization as returned by DGELQF.

LDA     (input) INTEGER
The leading dimension of the array	A.  LDA	>= max(1,M).

B	     (input/output) DOUBLE PRECISION array, dimension (LDB,NRHS)
On	entry, the matrix B of right hand side vectors,	stored
columnwise; B is M-by-NRHS	if TRANS = 'N',	or N-by-NRHS if	TRANS
= 'T'.  On	exit, B	is overwritten by the solution vectors,	stored
columnwise:  if TRANS = 'N' and m >= n, rows 1 to n of B contain
the least squares solution	vectors; the residual sum of squares
for the solution in each column is	given by the sum of squares of
elements N+1 to M in that column; if TRANS	= 'N' and m < n, rows
1 to N of B contain the minimum norm solution vectors; if TRANS =
'T' and m >= n, rows 1 to M of B contain the minimum norm
solution vectors; if TRANS	= 'T' and m < n, rows 1	to M of	B
contain the least squares solution	vectors; the residual sum of
squares for the solution in each column is	given by the sum of
squares of	elements M+1 to	N in that column.

LDB     (input) INTEGER
The leading dimension of the array	B. LDB >= MAX(1,M,N).

WORK    (workspace/output)	DOUBLE PRECISION array,	dimension (LWORK)
On	exit, if INFO =	0, WORK(1) returns the optimal LWORK.

LWORK   (input) INTEGER
The dimension of the array	WORK.  LWORK >=	min(M,N) +
MAX(1,M,N,NRHS).  For optimal performance,	LWORK >= min(M,N) +
MAX(1,M,N,NRHS) * NB where	NB is the optimum block	size.

INFO    (output) INTEGER
= 0:  successful exit
< 0:  if INFO = -i, the i-th argument had an illegal value

PPPPaaaaggggeeee 2222```
[ Back ]
Similar pages