Integer type:  int32  int64  nag_int  show int32  show int32  show int64  show int64  show nag_int  show nag_int

PDF version (NAG web site, 64-bit version, 64-bit version)
Chapter Contents
Chapter Introduction
NAG Toolbox

# NAG Toolbox: nag_lapack_zggglm (f08zp)

## Purpose

nag_lapack_zggglm (f08zp) solves a complex general Gauss–Markov linear (least squares) model problem.

## Syntax

[a, b, d, x, y, info] = f08zp(a, b, d, 'm', m, 'n', n, 'p', p)
[a, b, d, x, y, info] = nag_lapack_zggglm(a, b, d, 'm', m, 'n', n, 'p', p)

## Description

nag_lapack_zggglm (f08zp) solves the complex general Gauss–Markov linear model (GLM) problem
 $minimize x y2 subject to d=Ax+By$
where $A$ is an $m$ by $n$ matrix, $B$ is an $m$ by $p$ matrix and $d$ is an $m$ element vector. It is assumed that $n\le m\le n+p$, $\mathrm{rank}\left(A\right)=n$ and $\mathrm{rank}\left(E\right)=m$, where $E=\left(\begin{array}{cc}A& B\end{array}\right)$. Under these assumptions, the problem has a unique solution $x$ and a minimal $2$-norm solution $y$, which is obtained using a generalized $QR$ factorization of the matrices $A$ and $B$.
In particular, if the matrix $B$ is square and nonsingular, then the GLM problem is equivalent to the weighted linear least squares problem
 $minimize x B-1 d-Ax 2 .$

## References

Anderson E, Bai Z, Bischof C, Blackford S, Demmel J, Dongarra J J, Du Croz J J, Greenbaum A, Hammarling S, McKenney A and Sorensen D (1999) LAPACK Users' Guide (3rd Edition) SIAM, Philadelphia
Anderson E, Bai Z and Dongarra J (1992) Generalized QR factorization and its applications Linear Algebra Appl. (Volume 162–164) 243–271

## Parameters

### Compulsory Input Parameters

1:     $\mathrm{a}\left(\mathit{lda},:\right)$ – complex array
The first dimension of the array a must be at least $\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,{\mathbf{m}}\right)$.
The second dimension of the array a must be at least $\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,{\mathbf{n}}\right)$.
The $m$ by $n$ matrix $A$.
2:     $\mathrm{b}\left(\mathit{ldb},:\right)$ – complex array
The first dimension of the array b must be at least $\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,{\mathbf{m}}\right)$.
The second dimension of the array b must be at least $\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,{\mathbf{p}}\right)$.
The $m$ by $p$ matrix $B$.
3:     $\mathrm{d}\left({\mathbf{m}}\right)$ – complex array
The left-hand side vector $d$ of the GLM equation.

### Optional Input Parameters

1:     $\mathrm{m}$int64int32nag_int scalar
Default: the dimension of the array d and the first dimension of the array b. (An error is raised if these dimensions are not equal.)
$m$, the number of rows of the matrices $A$ and $B$.
Constraint: ${\mathbf{m}}\ge 0$.
2:     $\mathrm{n}$int64int32nag_int scalar
Default: the second dimension of the array a.
$n$, the number of columns of the matrix $A$.
Constraint: $0\le {\mathbf{n}}\le {\mathbf{m}}$.
3:     $\mathrm{p}$int64int32nag_int scalar
Default: the second dimension of the array b.
$p$, the number of columns of the matrix $B$.
Constraint: ${\mathbf{p}}\ge {\mathbf{m}}-{\mathbf{n}}$.

### Output Parameters

1:     $\mathrm{a}\left(\mathit{lda},:\right)$ – complex array
The first dimension of the array a will be $\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,{\mathbf{m}}\right)$.
The second dimension of the array a will be $\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,{\mathbf{n}}\right)$.
2:     $\mathrm{b}\left(\mathit{ldb},:\right)$ – complex array
The first dimension of the array b will be $\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,{\mathbf{m}}\right)$.
The second dimension of the array b will be $\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,{\mathbf{p}}\right)$.
3:     $\mathrm{d}\left({\mathbf{m}}\right)$ – complex array
4:     $\mathrm{x}\left({\mathbf{n}}\right)$ – complex array
The solution vector $x$ of the GLM problem.
5:     $\mathrm{y}\left({\mathbf{p}}\right)$ – complex array
The solution vector $y$ of the GLM problem.
6:     $\mathrm{info}$int64int32nag_int scalar
${\mathbf{info}}=0$ unless the function detects an error (see Error Indicators and Warnings).

## Error Indicators and Warnings

${\mathbf{info}}=-i$
If ${\mathbf{info}}=-i$, parameter $i$ had an illegal value on entry. The parameters are numbered as follows:
1: m, 2: n, 3: p, 4: a, 5: lda, 6: b, 7: ldb, 8: d, 9: x, 10: y, 11: work, 12: lwork, 13: info.
It is possible that info refers to a parameter that is omitted from the MATLAB interface. This usually indicates that an error in one of the other input parameters has caused an incorrect value to be inferred.
${\mathbf{info}}=1$
The upper triangular factor $R$ associated with $A$ in the generalized $RQ$ factorization of the pair $\left(A,B\right)$ is singular, so that $\mathrm{rank}\left(A\right); the least squares solution could not be computed.
${\mathbf{info}}=2$
The bottom $\left(N-M\right)$ by $\left(N-M\right)$ part of the upper trapezoidal factor $T$ associated with $B$ in the generalized $QR$ factorization of the pair $\left(A,B\right)$ is singular, so that $\mathrm{rank}\left(\begin{array}{cc}A& B\end{array}\right); the least squares solutions could not be computed.

## Accuracy

For an error analysis, see Anderson et al. (1992). See also Section 4.6 of Anderson et al. (1999).

When $p=m\ge n$, the total number of real floating-point operations is approximately $\frac{8}{3}\left(2{m}^{3}-{n}^{3}\right)+16n{m}^{2}$; when $p=m=n$, the total number of real floating-point operations is approximately $\frac{56}{3}{m}^{3}$.

## Example

This example solves the weighted least squares problem
 $minimize x B-1 d-Ax 2 ,$
where
 $B = 0.5-1.0i .0i+0.0 .0i+0.0 .0i+0.0 .0i+0.0 1.0-2.0i .0i+0.0 .0i+0.0 .0i+0.0 .0i+0.0 2.0-3.0i .0i+0.0 .0i+0.0 .0i+0.0 .0i+0.0 5.0-4.0i ,$
 $d = 6.00-0.40i -5.27+0.90i 2.72-2.13i -1.30-2.80i$
and
 $A = 0.96-0.81i -0.03+0.96i -0.91+2.06i -0.98+1.98i -1.20+0.19i -0.66+0.42i 0.62-0.46i 1.01+0.02i 0.63-0.17i 1.08-0.28i 0.20-0.12i -0.07+1.23i .$
Note that the block size (NB) of $64$ assumed in this example is not realistic for such a small problem, but should be suitable for large problems.
```function f08zp_example

fprintf('f08zp example results\n\n');

a = [ 0.96 - 0.81i, -0.03 + 0.96i, -0.91 + 2.06i;
-0.98 + 1.98i, -1.20 + 0.19i, -0.66 + 0.42i;
0.62 - 0.46i,  1.01 + 0.02i,  0.63 - 0.17i;
1.08 - 0.28i,  0.20 - 0.12i, -0.07 + 1.23i];
b = [ 0.5 - 1i,  0 + 0i,  0 + 0i,  0 + 0i;
0   + 0i,  1 - 2i,  0 + 0i,  0 + 0i;
0   + 0i,  0 + 0i,  2 - 3i,  0 + 0i;
0   + 0i,  0 + 0i,  0 + 0i,  5 - 4i];
d = [ 6.00 - 0.40i;
-5.27 + 0.90i;
2.72 - 2.13i;
-1.30 - 2.80i];

%Solve complex general Guass-Markov linear model
[~, ~, ~, x, y, info] = f08zp( ...
a, b, d);

disp('Weighted least-squares solution');
disp(x);
ncols  = int64(80);
indent = int64(0);
[ifail] = x04db( ...
'Gen', ' ', y, 'B', '1P,E10.2', 'Residual vector', ...
'N', 'N', ncols, indent);
sqres = norm(y,2);
fprintf('\nSquare root of the residual sum of squares\n%11.2e\n', ...
sqres);

```
```f08zp example results

Weighted least-squares solution
-0.9846 + 1.9950i
3.9929 - 4.9748i
-3.0026 + 0.9994i

Residual vector
(  1.26E-04, -4.66E-04)
(  1.11E-03, -8.61E-04)
(  3.84E-03, -1.82E-03)
(  2.03E-03,  3.02E-03)

Square root of the residual sum of squares
5.79e-03
```

PDF version (NAG web site, 64-bit version, 64-bit version)
Chapter Contents
Chapter Introduction
NAG Toolbox

© The Numerical Algorithms Group Ltd, Oxford, UK. 2009–2015