edu.northwestern.at.utils.math.matrix
Class MatrixProperty

java.lang.Object
  extended by edu.northwestern.at.utils.math.matrix.MatrixProperty

public class MatrixProperty
extends java.lang.Object

MatrixProperty returns a boolean value for a property of a matrix.


Constructor Summary
protected MatrixProperty()
          Don't allow instantiation but do allow overrides.
 
Method Summary
static int[] bandwidth(Matrix matrix)
          Return bandwidth for matrix.
static int[] bandwidth(Matrix matrix, double tolerance)
          Return bandwidth for matrix.
static boolean isColumnVector(Matrix matrix)
          Determines whether or not a matrix is a Column Vector
static boolean isDiagonal(Matrix matrix)
          Is square matrix diagonal.
static boolean isDiagonal(Matrix matrix, double tolerance)
          Is square matrix diagonal.
static boolean isHigh(Matrix matrix)
          Is matrix high.
static boolean isIdempotent(Matrix matrix)
          Is matrix idempotent.
static boolean isIdempotent(Matrix matrix, double tolerance)
          Is matrix idempotent.
static boolean isIdentity(Matrix matrix)
          Is matrix an identity matrix.
static boolean isIdentity(Matrix matrix, double tolerance)
          Is matrix an identity matrix.
static boolean isLowerTriangular(Matrix matrix)
          Is matrix lower-triangular.
static boolean isLowerTriangular(Matrix matrix, double tolerance)
          Is matrix lower-triangular.
static boolean isPositiveDefinite(Matrix matrix)
          Is matrix positive-definite.
static boolean isRowVector(Matrix matrix)
          Determines if matrix is a row vector.
static boolean isScalar(Matrix matrix, double tolerance)
          Determines if square matrix is a scalar matrix.
static boolean isSemiPositiveDefinite(Matrix matrix)
          Is matrix semipositive definite.
static boolean isSingular(Matrix matrix)
          Determines if a square matrix is singular.
static boolean isSkewSymmetric(Matrix matrix)
          Is matrix skew symnmetric.
static boolean isSkewSymmetric(Matrix matrix, double tolerance)
          Is matrix skew symnmetric.
static boolean isSquare(Matrix matrix)
          Determine if matrix is square.
static boolean isSymmetric(Matrix matrix)
          Is matrix symmetric.
static boolean isSymmetric(Matrix matrix, double tolerance)
          Is matrix symmetric.
static boolean isSymmetricPositiveDefinite(Matrix matrix)
          Determine if matrix is symmetric positive definite.
static boolean isUnit(Matrix matrix)
          Determine if a diagonal matrix is an identity matrix.
static boolean isUnit(Matrix matrix, double tolerance)
          Determine if a diagonal matrix is an identity matrix.
static boolean isUpperTriangular(Matrix matrix)
          Determines if matrix is upper triangular.
static boolean isVector(Matrix matrix)
          Determine if matrix is a vector.
static boolean isWide(Matrix matrix)
          Determine if matrix is wide.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MatrixProperty

protected MatrixProperty()
Don't allow instantiation but do allow overrides.

Method Detail

bandwidth

public static int[] bandwidth(Matrix matrix,
                              double tolerance)
Return bandwidth for matrix.

Parameters:
matrix - The matrix.
tolerance - Tolerance for checking for zero.
Returns:
Integer array with three entries. [0] = lower bandwidth [1] = upper bandwidth [2] = total bandwidth

bandwidth

public static int[] bandwidth(Matrix matrix)
Return bandwidth for matrix.

Parameters:
matrix - The matrix.
Returns:
Integer array with three entries. [0] = lower bandwidth [1] = upper bandwidth [2] = total bandwidth

isColumnVector

public static boolean isColumnVector(Matrix matrix)
Determines whether or not a matrix is a Column Vector

Parameters:
matrix - The matrix.
Returns:
true if m has only one column.

isDiagonal

public static boolean isDiagonal(Matrix matrix,
                                 double tolerance)
Is square matrix diagonal.

Parameters:
matrix - Matrix.
tolerance - Tolerance for checking for zero.
Returns:
True if all elements other than those on the main diagonal are zero to within the specified tolerance, e.g., an element is considered zero if |matrix(i,j)| <= tolerance.

isDiagonal

public static boolean isDiagonal(Matrix matrix)
Is square matrix diagonal.

Parameters:
matrix - Matrix.
Returns:
True if all elements other than those on the main diagonal are zero.

isHigh

public static boolean isHigh(Matrix matrix)
Is matrix high.

Parameters:
matrix - The matrix.
Returns:
True if the matrix has more rows than columns.

isIdempotent

public static boolean isIdempotent(Matrix matrix,
                                   double tolerance)
Is matrix idempotent.

Parameters:
matrix - Matrix.
tolerance - Tolerance for checking for zero.
Returns:
True if matrix is equal to its element-wise product within the specified tolerance.

isIdempotent

public static boolean isIdempotent(Matrix matrix)
Is matrix idempotent.

Parameters:
matrix - Matrix.
Returns:
True if matrix is equal to its element-wise product.

isIdentity

public static boolean isIdentity(Matrix matrix,
                                 double tolerance)
Is matrix an identity matrix.

Parameters:
matrix - Matrix. Must be square.
tolerance - Tolerance for checking for zero.
Returns:
True if matrix is square, all off-diagonal elements are zero to within tolerance, and all the diagonal elements are 1 within tolerance.

isIdentity

public static boolean isIdentity(Matrix matrix)
Is matrix an identity matrix.

Parameters:
matrix - Matrix. Must be square.
Returns:
True if matrix is square, all off-diagonal elements are zero, and all the diagonal elements are 1.

isLowerTriangular

public static boolean isLowerTriangular(Matrix matrix,
                                        double tolerance)
Is matrix lower-triangular.

Parameters:
matrix - Matrix.
tolerance - Tolerance for checking for zero.
Returns:
True if matrix is lower triangular.

isLowerTriangular

public static boolean isLowerTriangular(Matrix matrix)
Is matrix lower-triangular.

Parameters:
matrix - Matrix.
Returns:
True if matrix is lower triangular.

isPositiveDefinite

public static boolean isPositiveDefinite(Matrix matrix)
Is matrix positive-definite.

Parameters:
matrix - Matrix.
Returns:
True if matrix is positive definite.

A matrix is positive definite if all its eigenvalues are real and greater than zero.


isRowVector

public static boolean isRowVector(Matrix matrix)
Determines if matrix is a row vector.

Parameters:
matrix - The matrix.
Returns:
True if matrix has only one row.

isScalar

public static boolean isScalar(Matrix matrix,
                               double tolerance)
Determines if square matrix is a scalar matrix.

Parameters:
matrix - The matrix.
tolerance - Tolerance for equality checking.
Returns:
True if matrix is square and diagonal with all diagonal elements equal.

isSemiPositiveDefinite

public static boolean isSemiPositiveDefinite(Matrix matrix)
Is matrix semipositive definite.

Parameters:
matrix - Matrix.
Returns:
True if matrix is semipositive definite.

A matrix is semi-positive definition if all of its eigenvalues are >= 0.


isSingular

public static boolean isSingular(Matrix matrix)
Determines if a square matrix is singular.

Parameters:
matrix - The matrix.
Returns:
True is matrix is singular.

We use an LU decomposition to determine if the matrix is singular.


isSkewSymmetric

public static boolean isSkewSymmetric(Matrix matrix,
                                      double tolerance)
Is matrix skew symnmetric.

Parameters:
matrix - Matrix.
tolerance - Tolerance for checking equality of matrix values.
Returns:
True iff A' = -A .

isSkewSymmetric

public static boolean isSkewSymmetric(Matrix matrix)
Is matrix skew symnmetric.

Parameters:
matrix - Matrix.
Returns:
True iff A' = -A .

isSquare

public static boolean isSquare(Matrix matrix)
Determine if matrix is square.

Parameters:
matrix - The matrix.
Returns:
True if the matrix has the same number of rows as columns.

isSymmetric

public static boolean isSymmetric(Matrix matrix,
                                  double tolerance)
Is matrix symmetric.

Parameters:
matrix - Matrix.
tolerance - Tolerance for checking equality of matrix values.
Returns:
True iff A' = A .

isSymmetric

public static boolean isSymmetric(Matrix matrix)
Is matrix symmetric.

Parameters:
matrix - Matrix.
Returns:
True iff A' = A .

isSymmetricPositiveDefinite

public static boolean isSymmetricPositiveDefinite(Matrix matrix)
Determine if matrix is symmetric positive definite.

Parameters:
matrix - The matrix.
Returns:
True if matrix is symmetric positive definite.

A Cholesky decomposition is used to determine if the matrix is positive semidefinite.


isUnit

public static boolean isUnit(Matrix matrix,
                             double tolerance)
Determine if a diagonal matrix is an identity matrix.

Parameters:
matrix - The matrix.
tolerance - Tolerance for zero check.
Returns:
True if matrix is unit (identity) matrix.

isUnit

public static boolean isUnit(Matrix matrix)
Determine if a diagonal matrix is an identity matrix.

Parameters:
matrix - The matrix.
Returns:
True if matrix is identity matrix.

isUpperTriangular

public static boolean isUpperTriangular(Matrix matrix)
Determines if matrix is upper triangular.

Parameters:
matrix - The matrix.
Returns:
True if matrix is upper triangular.

isVector

public static boolean isVector(Matrix matrix)
Determine if matrix is a vector.

Parameters:
matrix - The matrix.
Returns:
True if matrix had only one row or column.

isWide

public static boolean isWide(Matrix matrix)
Determine if matrix is wide.

Parameters:
matrix - The matrix.
Returns:
True if the matrix has more coluns than rows.