|
JMSLTM Numerical Library 4.0 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.imsl.math.LU
LU factorization of a matrix of type double
.
LU
performs an LU factorization of a
real general coefficient matrix. The condition
method
estimates the condition number of the matrix. The LU factorization is done
using scaled partial pivoting. Scaled partial pivoting differs from partial
pivoting in that the pivoting strategy is the same as if each row were
scaled to have the same infinity norm.
The condition number of the matrix A is defined to be . Since it is expensive to compute , the condition number is only estimated. The estimation algorithm is the same as used by LINPACK and is described in a paper by Cline et al. (1979).
An estimated condition number greater than (where is machine precision) indicates that very small changes in A can cause very large changes in the solution x. Iterative refinement can sometimes find the solution to such a system.
LU
fails if U, the upper triangular
part of the factorization, has a zero diagonal element. This can occur only
if A either is singular or is very close to a singular
matrix.
Use the solve
method to solve systems of equations. The
determinant
method can be called to compute the determinant of
the coefficient matrix.
LU
is based on the LINPACK routine SGECO
; see
Dongarra et al. (1979). SGECO
uses unscaled partial pivoting.
Field Summary | |
protected double[][] |
factor
LU factorization of A with partial pivoting |
protected int[] |
ipvt
Pivot sequence for the factorization |
Constructor Summary | |
LU(double[][] a)
Creates the LU factorization of a square matrix of type double . |
Method Summary | |
double |
condition(double[][] a)
Return an estimate of the reciprocal of the L1 condition number of a matrix. |
double |
determinant()
Return the determinant of the matrix used to construct this instance. |
double[][] |
inverse()
Returns the inverse of the matrix used to construct this instance. |
double[] |
solve(double[] b)
Return the solution x of the linear system Ax = b using the LU factorization of A. |
static double[] |
solve(double[][] a,
double[] b)
Solve ax=b for x using the LU factorization of a. |
double[] |
solveTranspose(double[] b)
Return the solution x of the linear system . |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected double[][] factor
protected int[] ipvt
Constructor Detail |
public LU(double[][] a) throws SingularMatrixException
double
.
a
- the double
square matrix to be factored
IllegalArgumentException
- is thrown when
the row lengths of input matrix are not equal
(for example, the matrix edges are "jagged".)
SingularMatrixException
- is thrown when
the input matrix is singular.Method Detail |
public double condition(double[][] a)
a
- the double
square matrix for which
the reciprocal of the L1 condition number is desired
double
value representing an estimate of the
reciprocal of the L1 condition number of the matrixpublic double determinant()
double
scalar containing the determinant of the
matrix used to construct this instancepublic double[][] inverse()
double
matrix representing the inverse
of the matrix used to construct this instancepublic double[] solve(double[] b)
b
- a double
array containing the right-hand side of the
linear system
double
array containing the solution to the linear
system of equationspublic static double[] solve(double[][] a, double[] b) throws SingularMatrixException
a
- a double
square matrixb
- a double
column vector
double
column vector containing the
solution to the linear system of equations
IllegalArgumentException
- This exception is thrown when (1) the lengths of the
rows of the input matrix are not uniform, and (2) the
number of rows in the input matrix is not equal to the
number of elements in x.
SingularMatrixException
- is thrown when the matrix is singular.public double[] solveTranspose(double[] b)
b
- double
array containing the right-hand side of the linear system
double
array containing the solution to the linear system of
equations
|
JMSLTM Numerical Library 4.0 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |