For an m-by-n matrix A with m >= n, the QR decomposition is an m-by-n orthogonal matrix Q and an n-by-n upper triangular matrix R so that A = Q*R.
The QR decompostion always exists, even if the matrix does not have full rank, so the constructor will never fail. The primary use of the QR decomposition is in the least squares solution of nonsquare systems of simultaneous linear equations. This will fail if isFullRank() returns false.
solve
and isFullRank
methods have been replaced by a {@link #getSolver() getSolver} method and the equivalent methods provided bythe returned {@link DecompositionSolver}.QR decompositions decompose a rectangular matrix 'A' such that 'A=QR'. Where A ∈ ℜ n × m , n ≥ m, Q ∈ ℜ n × n is an orthogonal matrix, and R ∈ ℜ n × m is an upper triangular matrix. Some implementations of QR decomposition require that A has full rank.
Some features of QR decompositions:
Orthogonal matrices have the following properties:
This subroutine uses householder transformations with optional column pivoting to compute a QR factorization of the {@latex$ m} by {@latex$ n} matrix {@latex$ A}.
That is, Minpack_f77#qrfac determines an orthogonal matrix {@latex$ Q}, a permutation matrix {@latex$ P}, and an upper trapezoidal matrix {@latex$ R} with diagonal elements of nonincreasing magnitude, such that {@latex$ A*P = Q*R}.
Return value ipvt
is an integer array of length {@latex$ n}, which defines the permutation matrix {@latex$ P}such that {@latex$ A*P = Q*R}.
Column {@latex$ j} of {@latex$ P} is column ipvt[j]
of the identity matrix.
See lmdiff.cpp for further details. @see MathWorld @see Wikipedia @see MINPACK/J @see MINPACK @author Richard Gomes
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|