hide long namesshow long names
hide short namesshow short names
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_dggglm (f08zb)

 Contents

    1  Purpose
    2  Syntax
    7  Accuracy
    9  Example

Purpose

nag_lapack_dggglm (f08zb) solves a real general Gauss–Markov linear (least squares) model problem.

Syntax

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

Description

nag_lapack_dggglm (f08zb) solves the real 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 nmn+p, rankA=n and rankE=m, where E= A B . 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:     alda: – double array
The first dimension of the array a must be at least max1,m.
The second dimension of the array a must be at least max1,n.
The m by n matrix A.
2:     bldb: – double array
The first dimension of the array b must be at least max1,m.
The second dimension of the array b must be at least max1,p.
The m by p matrix B.
3:     dm – double array
The left-hand side vector d of the GLM equation.

Optional Input Parameters

1:     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: m0.
2:     n int64int32nag_int scalar
Default: the second dimension of the array a.
n, the number of columns of the matrix A.
Constraint: 0nm.
3:     p int64int32nag_int scalar
Default: the second dimension of the array b.
p, the number of columns of the matrix B.
Constraint: pm-n.

Output Parameters

1:     alda: – double array
The first dimension of the array a will be max1,m.
The second dimension of the array a will be max1,n.
2:     bldb: – double array
The first dimension of the array b will be max1,m.
The second dimension of the array b will be max1,p.
3:     dm – double array
4:     xn – double array
The solution vector x of the GLM problem.
5:     yp – double array
The solution vector y of the GLM problem.
6:     info int64int32nag_int scalar
info=0 unless the function detects an error (see Error Indicators and Warnings).

Error Indicators and Warnings

   info=-i
If 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.
   info=1
The upper triangular factor R associated with A in the generalized RQ factorization of the pair A,B is singular, so that rankA<m; the least squares solution could not be computed.
   info=2
The bottom N-M by N-M part of the upper trapezoidal factor T associated with B in the generalized QR factorization of the pair A,B is singular, so that rankAB<N; 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).

Further Comments

When p=mn, the total number of floating-point operations is approximately 232m3-n3+4nm2; when p=m=n, the total number of floating-point operations is approximately 143m3.

Example

This example solves the weighted least squares problem
minimize x B-1 d-Ax 2 ,  
where
B = 0.5 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 2.0 0.0 0.0 0.0 0.0 5.0 ,   d= 1.32 -4.00 5.52 3.24   and   A= -0.57 -1.28 -0.39 -1.93 1.08 -0.31 2.30 0.24 -0.40 -0.02 1.03 -1.43 .  
function f08zb_example


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

% Minimize ||y|| given Ax + By = d
a = [-0.57, -1.28, -0.39;
     -1.93,  1.08, -0.31;
      2.30,  0.24, -0.40;
     -0.02,  1.03, -1.43];
b = [ 0.5, 0, 0, 0;
      0,   1, 0, 0;
      0,   0, 2, 0;
      0,   0, 0, 5];
d = [ 1.32;
     -4.00;
      5.52;
      3.24];

[~, ~, ~, x, y, info] = f08zb( ...
                               a, b, d);

disp('Weighted least-squares solution');
fprintf('%12.4f',x);
fprintf('\n');
fprintf('Residual vector\n  ');
fprintf('%12.2e',y);
sqres = norm(y,2);
fprintf('\n\nSquare root of the residual sum of squares\n  %12.2e\n', ...
        sqres);


f08zb example results

Weighted least-squares solution
      1.9889     -1.0058     -2.9911
Residual vector
     -6.37e-04   -2.45e-03   -4.72e-03    7.70e-03

Square root of the residual sum of squares
      9.38e-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