public class DenseDoubleQRDecomposition extends Object implements Serializable
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.
Constructor and Description |
---|
DenseDoubleQRDecomposition(DoubleMatrix2D A)
Constructs and returns a new QR decomposition object; computed by
Householder reflections; The decomposed matrices can be retrieved via
instance methods of the returned decomposition object.
|
Modifier and Type | Method and Description |
---|---|
DoubleMatrix2D |
getQ(boolean economySize)
Generates and returns a copy of the orthogonal factor Q.
|
DoubleMatrix2D |
getR(boolean economySize)
Returns a copy of the upper triangular factor, R.
|
boolean |
hasFullRank()
Returns whether the matrix A has full rank.
|
void |
solve(DoubleMatrix1D b)
Least squares solution of A*x = b (in-place).
|
void |
solve(DoubleMatrix2D B)
Least squares solution of A*X = B(in-place).
|
String |
toString()
Returns a String with (propertyName, propertyValue) pairs.
|
public DenseDoubleQRDecomposition(DoubleMatrix2D A)
A
- A rectangular matrix.IllegalArgumentException
- if A.rows() < A.columns().public DoubleMatrix2D getQ(boolean economySize)
economySize
- if true, then Q is m-by-n, otherwise, Q is m-by-mpublic DoubleMatrix2D getR(boolean economySize)
economySize
- if true, then R is n-by-n, otherwise, R is m-by-npublic boolean hasFullRank()
public void solve(DoubleMatrix1D b)
b
- right-hand side.IllegalArgumentException
- if b.size() != A.rows().IllegalArgumentException
- if !this.hasFullRank() (A is rank
deficient).public void solve(DoubleMatrix2D B)
B
- A matrix with as many rows as A and any number of
columns.IllegalArgumentException
- if B.rows() != A.rows().IllegalArgumentException
- if !this.hasFullRank() (A is rank
deficient).Jump to the Parallel Colt Homepage