/usr/share/freemat/help/text/qr.mdc is in freemat-help 4.0-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | QR QR QR Decomposition of a Matrix
Usage
Computes the QR factorization of a matrix. The qr function has
multiple forms, with and without pivoting. The non-pivot version
has two forms, a compact version and a full-blown decomposition
version. The compact version of the decomposition of a matrix
of size M x N is
[q,r] = qr(a,0)
where q is a matrix of size M x L and r is a matrix of
size L x N and L = min(N,M), and q*r = a. The QR decomposition is
such that the columns of Q are orthonormal, and R is upper
triangular. The decomposition is computed using the LAPACK
routine xgeqrf, where x is the precision of the matrix.
FreeMat supports decompositions of single and double types.
The second form of the non-pivot decomposition omits the second 0
argument:
[q,r] = qr(a)
This second form differs from the previous form only for matrices
with more rows than columns (M > N). For these matrices, the
full decomposition is of a matrix Q of size M x M and
a matrix R of size M x N. The full decomposition is computed
using the same LAPACK routines as the compact decomposition, but
on an augmented matrix [a 0], where enough columns are added to
form a square matrix.
Generally, the QR decomposition will not return a matrix R with
diagonal elements in any specific order. The remaining two forms
of the qr command utilize permutations of the columns of a
so that the diagonal elements of r are in decreasing magnitude.
To trigger this form of the decomposition, a third argument is
required, which records the permutation applied to the argument a.
The compact version is
[q,r,e] = qr(a,0)
where e is an integer vector that describes the permutation of
the columns of a necessary to reorder the diagonal elements of
r. This result is computed using the LAPACK routines (s,d)geqp3.
In the non-compact version of the QR decomposition with pivoting,
[q,r,e] = qr(a)
the returned matrix e is a permutation matrix, such that
q*r*e' = a.
|