Calculates QR decompositions of matrices.

### Option

`PRINT` = string tokens |
Printed output required (`orthogonalmatrix` , `uppertriangularmatrix` ); default `*` i.e. no printing |
---|

### Parameters

`INMATRIX` = matrices or symmetric matrices |
Matrices to be decomposed |
---|---|

`ORTHOGONALMATRIX` = matrices |
Orthogonal matrix of each decomposition |

`UPPERTRIANGULARMATRIX` = matrices |
Upper-triangular matrix of each decomposition |

### Description

The QR decomposition of a matrix is a decomposition of an *m* by *n* matrix *A* into an orthogonal matrix *Q* (i.e. *Q*′*Q* = *I*), and an *n* by *m* matrix *R*, so that *A* = *Q R*. If m ≥ n, the top *n* rows of *R* are triangular and the lower *m*–*n* rows contain zeros. If *m* < *n*, *R* is trapezoidal, i.e. it has the form (*R*_{1} | *R*_{2}) where *R*_{1} is an upper triangular matrix and *R*_{2} is a rectangular matrix.

The matrix *A* to be composed is specified by the `INMATRIX`

parameter, and the matrices *Q* and *R* can be saved using the `ORTHOGONALMATRIX`

, and `UPPERTRIANGULARMATRIX`

parameters, respectively.

The PRINT option allows you to print either of the components of the decomposition; by default, nothing is printed.

Option: `PRINT`

.

Parameters: `INMATRIX`

, `ORTHOGONALMATRIX`

, `UPPERTRIANGULARMATRIX`

.

### Method

`QRD`

uses subroutines F08AEF and F08AFF from the NAG Library.

### See also

Directives: `MATRIX`

, `CALCULATE`

, `NAG`

, `FLRV`

, `SVD`

.

Commands for: Calculations and manipulation,

Multivariate and cluster analysis.

### Example

" Example QRD-1: NAG example for F08AEF " MATRIX [ROWS=6; COLUMNS=4; VALUES=\ -0.57, -1.28, -0.39, 0.25,\ -1.93, 1.08, -0.31, -2.14,\ 2.30, 0.24, 0.40, -0.35,\ -1.93, 0.64, -0.66, 0.08,\ 0.15, 0.30, 0.15, -2.13,\ -0.02, 1.03, -1.43, 0.50] A QRD A; ORTHOGONALMATRIX=Q; UPPERTRIANGULARMATRIX=R PRINT Q,R " verify that A = QR " CALCULATE QR = Q *+ R PRINT [RLWIDTH=2] A,QR; FIELD=9 " verify that Q'Q = I " CALCULATE QQ = T(Q) *+ Q PRINT QQ " solve the linear least-squares problem: minimize (Axi - Bi)**2: i=1,2 " MATRIX [ROW=6; COLUMNS=2; VALUES=\ -3.15, 2.19,\ -0.11, -3.64,\ 1.99, 0.57,\ -2.70, 8.23,\ 0.26, -6.35,\ 4.50, -1.48] B CALCULATE C = T(Q) *+ B & X = GINVERSE(R) *+ C PRINT X " check vs. ordinary regression " VARIATE B1,B2; VALUES=B$[*;1,2] & A1,A2,A3,A4; VALUES=A$[*;1...4] MODEL B1,B2 FIT [PRINT=estimates; CONSTANT=omit] A1,A2,A3,A4