LinearAlgebra[QRDecomposition]  compute QR factorization of a Matrix

Calling Sequence


QRDecomposition(A, fs, out, c, options, outopts)


Parameters


A



Matrix

fs



(optional) BooleanOpt(fullspan); selects whether a full QR factorization is performed

out



(optional) equation of the form output = obj where obj is one of 'Q', R', 'NAG', or 'rank', or a list containing one or more of these names; selects result objects to compute

c



(optional) BooleanOpt(conjugate); selects whether conjugations are performed in the GramSchmidt process

options



(optional); constructor options for the result object(s)

outopts



(optional) equation of the form outputoptions[o] = list where o is one of 'Q', 'R', or 'NAG'; constructor options for the specified result object





Description


•

The QRDecomposition function computes the QR decomposition of the Matrix A.

•

If A contains symbolic entries, a GramSchmidt process is used to generate the factorization of A. If the fullspan option (fs) is omitted or entered as fullspan=false, and A does not have full rank or has more rows than columns, a Q1R1 factorization is performed. The columns of the Q1 factor span the column space of A.


If the fullspan option is specified as just the symbol fullspan or as fullspan=true, or A has full rank, then a full QR factorization is performed.


If the QR decomposition is successful, then the Matrix is full rank. Otherwise, at some point a 0 column (on and below the diagonal) will be encountered. Thus the rank is an optional output object.


By default, elements are conjugated during the GramSchmidt process. If conjugate=false is specified in the calling sequence, no conjugations are performed.

•

If A contains floatingpoint entries, Householder transformations are used to compute the factorization.

•

Depending on what is included in the output option (out), an expression sequence containing Q, R, rank or an expression sequence containing NAG, rank, can be returned. The objects are returned in the same order as specified in the output list.


The output object NAG may only be requested if the input Matrix contains floatingpoint data. It may not be requested with either of the other Matrix output objects, Q or R. The NAG object is an expression sequence whose first item is a Matrix and whose second item is a Vector. The Matrix component of the NAG output object contains R in the upper triangle if m >= n, and in the lower triangle if m < n. The remaining portion of the Matrix component, and the Vector component of the NAG output object contain details of the reflectors that make up the factors of Q.


The fullspan option is incompatible with the output=[NAG] option for a nonsquare Matrix A.


If the output option is not included in the calling sequence, the returned expression sequence contains the objects Q and R.

•

The constructor options provide additional information (readonly, shape, storage, order, datatype, and attributes) to the Matrix or Vector constructor that builds the result(s). These options may also be provided in the form outputoptions[o]=[...], where [...] represents a Maple list. If a constructor option is provided in both the calling sequence directly and in an outputoptions[o] option, the latter takes precedence (regardless of the order).


The following list indicates permissible values for index [o] of outputoptions with their corresponding meaning.

Q

orthonormal (unitary) factor

R

upper triangular factor

NAG

compact (NAGstyle) form



•

The QR decomposition of a Matrix can be used as input for the LinearSolve command. For more details on how to do this, see that help page.

•

This function is part of the LinearAlgebra package, and so it can be used in the form QRDecomposition(..) only after executing the command with(LinearAlgebra). However, it can always be accessed through the long form of the command by using LinearAlgebra[QRDecomposition](..).



Examples


>


>


 (1) 
>


 (2) 
>


 (3) 
>


 (4) 
>


 (5) 
>


 (6) 
>


 (7) 
>


 (8) 

