Package org.ejml.dense.row.linsol.qr
Class BaseLinearSolverQrp_DDRM
- java.lang.Object
-
- org.ejml.dense.row.linsol.LinearSolverAbstract_DDRM
-
- org.ejml.dense.row.linsol.qr.BaseLinearSolverQrp_DDRM
-
- All Implemented Interfaces:
org.ejml.interfaces.linsol.LinearSolver<org.ejml.data.DMatrixRMaj,org.ejml.data.DMatrixRMaj>,org.ejml.interfaces.linsol.LinearSolverDense<org.ejml.data.DMatrixRMaj>
- Direct Known Subclasses:
LinearSolverQrpHouseCol_DDRM,SolvePseudoInverseQrp_DDRM
public abstract class BaseLinearSolverQrp_DDRM extends LinearSolverAbstract_DDRM
Base class for QR pivot based pseudo inverse classes. It will return either the basic of minimal 2-norm solution. See [1] for details. The minimal 2-norm solution refers to the solution 'x' whose 2-norm is the smallest making it unique, not some other error function.
R = [ R12 R12 ] r P^T*x = [ y ] r Q^T*b = [ c ] r [ 0 0 ] m-r [ z ] n -r [ d ] m-r r n-r where r is the rank of the matrix and (m,n) is the dimension of the linear system.The solution 'x' is found by solving the system below. The basic solution is found by setting z=0 [ R_11^-1*(c - R12*z) ] x = [ z ]NOTE: The matrix rank is determined using the provided QR decomposition. [1] mentions that this will not always work and could cause some problems.
[1] See page 258-259 in Gene H. Golub and Charles F. Van Loan "Matrix Computations" 3rd Ed, 1996
-
-
Field Summary
Fields Modifier and Type Field Description protected org.ejml.data.DMatrixRMajIprotected org.ejml.interfaces.linsol.LinearSolverDense<org.ejml.data.DMatrixRMaj>internalSolverprotected booleannorm2Solutionprotected org.ejml.data.DMatrixRMajRprotected org.ejml.data.DMatrixRMajR11protected intrankprotected org.ejml.data.DMatrixRMajY-
Fields inherited from class org.ejml.dense.row.linsol.LinearSolverAbstract_DDRM
A, numCols, numRows
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedBaseLinearSolverQrp_DDRM(org.ejml.interfaces.decomposition.QRPDecomposition_F64<org.ejml.data.DMatrixRMaj> decomposition, boolean norm2Solution)Configures internal parameters.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.ejml.interfaces.decomposition.QRPDecomposition_F64<org.ejml.data.DMatrixRMaj>getDecomposition()voidinvert(org.ejml.data.DMatrixRMaj A_inv)doublequality()booleansetA(org.ejml.data.DMatrixRMaj A)protected voidupgradeSolution(org.ejml.data.DMatrixRMaj X)Upgrades the basic solution to the optimal 2-norm solution.-
Methods inherited from class org.ejml.dense.row.linsol.LinearSolverAbstract_DDRM
_setA, getA
-
-
-
-
Field Detail
-
norm2Solution
protected boolean norm2Solution
-
Y
protected org.ejml.data.DMatrixRMaj Y
-
R
protected org.ejml.data.DMatrixRMaj R
-
R11
protected org.ejml.data.DMatrixRMaj R11
-
I
protected org.ejml.data.DMatrixRMaj I
-
rank
protected int rank
-
internalSolver
protected org.ejml.interfaces.linsol.LinearSolverDense<org.ejml.data.DMatrixRMaj> internalSolver
-
-
Constructor Detail
-
BaseLinearSolverQrp_DDRM
protected BaseLinearSolverQrp_DDRM(org.ejml.interfaces.decomposition.QRPDecomposition_F64<org.ejml.data.DMatrixRMaj> decomposition, boolean norm2Solution)Configures internal parameters.- Parameters:
decomposition- Used to solve the linear system.norm2Solution- If true then the optimal 2-norm solution will be computed for degenerate systems.
-
-
Method Detail
-
setA
public boolean setA(org.ejml.data.DMatrixRMaj A)
-
quality
public double quality()
-
upgradeSolution
protected void upgradeSolution(org.ejml.data.DMatrixRMaj X)
Upgrades the basic solution to the optimal 2-norm solution.
First solves for 'z' || x_b - P*[ R_11^-1 * R_12 ] * z ||2 min z || [ - I_{n-r} ] ||- Parameters:
X- basic solution, also output solution
-
invert
public void invert(org.ejml.data.DMatrixRMaj A_inv)
- Specified by:
invertin interfaceorg.ejml.interfaces.linsol.LinearSolverDense<org.ejml.data.DMatrixRMaj>- Overrides:
invertin classLinearSolverAbstract_DDRM
-
getDecomposition
public org.ejml.interfaces.decomposition.QRPDecomposition_F64<org.ejml.data.DMatrixRMaj> getDecomposition()
-
-