org.apache.commons.math.linear
Interface RealMatrix

All Known Implementing Classes:
RealMatrixImpl

public interface RealMatrix

Interface defining a real-valued matrix with basic algebraic operations.

Matrix element indexing is 0-based -- e.g., getEntry(0, 0) returns the element in the first row, first column of the matrix.

Version:
$Revision: 1.25 $ $Date: 2004/10/12 06:19:50 $

Method Summary
 RealMatrix add(RealMatrix m)
          Compute the sum of this and m.
 RealMatrix copy()
          Returns a (deep) copy of this.
 double[] getColumn(int col)
          Returns the entries in column number col as an array.
 int getColumnDimension()
          Returns the number of columns in the matrix.
 RealMatrix getColumnMatrix(int column)
          Returns the entries in column number column as a column matrix.
 double[][] getData()
          Returns matrix entries as a two-dimensional array.
 double getDeterminant()
          Returns the determinant of this matrix.
 double getEntry(int row, int column)
          Returns the entry in the specified row and column.
 double getNorm()
          Returns the maximum absolute row sum norm of the matrix.
 double[] getRow(int row)
          Returns the entries in row number row as an array.
 int getRowDimension()
          Returns the number of rows in the matrix.
 RealMatrix getRowMatrix(int row)
          Returns the entries in row number row as a row matrix.
 RealMatrix getSubMatrix(int[] selectedRows, int[] selectedColumns)
          Gets a submatrix.
 RealMatrix getSubMatrix(int startRow, int endRow, int startColumn, int endColumn)
          Gets a submatrix.
 double getTrace()
          Returns the trace of the matrix (the sum of the elements on the main diagonal).
 RealMatrix inverse()
          Returns the inverse of this matrix.
 boolean isSingular()
          Is this a singular matrix?
 boolean isSquare()
          Is this a square matrix?
 RealMatrix multiply(RealMatrix m)
          Returns the result of postmultiplying this by m.
 double[] operate(double[] v)
          Returns the result of multiplying this by the vector v.
 double[] preMultiply(double[] v)
          Returns the (row) vector result of premultiplying this by the vector v.
 RealMatrix preMultiply(RealMatrix m)
          Returns the result premultiplying this by m.
 RealMatrix scalarAdd(double d)
          Returns the result of adding d to each entry of this.
 RealMatrix scalarMultiply(double d)
          Returns the result multiplying each entry of this by d.
 double[] solve(double[] b)
          Returns the solution vector for a linear system with coefficient matrix = this and constant vector = b.
 RealMatrix solve(RealMatrix b)
          Returns a matrix of (column) solution vectors for linear systems with coefficient matrix = this and constant vectors = columns of b.
 RealMatrix subtract(RealMatrix m)
          Compute this minus m.
 RealMatrix transpose()
          Returns the transpose of this matrix.
 

Method Detail

copy

public RealMatrix copy()
Returns a (deep) copy of this.

Returns:
matrix copy

add

public RealMatrix add(RealMatrix m)
               throws IllegalArgumentException
Compute the sum of this and m.

Parameters:
m - matrix to be added
Returns:
this + m
Throws:
IllegalArgumentException - if m is not the same size as this

subtract

public RealMatrix subtract(RealMatrix m)
                    throws IllegalArgumentException
Compute this minus m.

Parameters:
m - matrix to be subtracted
Returns:
this + m
Throws:
IllegalArgumentException - if m is not the same size as this

scalarAdd

public RealMatrix scalarAdd(double d)
Returns the result of adding d to each entry of this.

Parameters:
d - value to be added to each entry
Returns:
d + this

scalarMultiply

public RealMatrix scalarMultiply(double d)
Returns the result multiplying each entry of this by d.

Parameters:
d - value to multiply all entries by
Returns:
d * this

multiply

public RealMatrix multiply(RealMatrix m)
                    throws IllegalArgumentException
Returns the result of postmultiplying this by m.

Parameters:
m - matrix to postmultiply by
Returns:
this * m
Throws:
IllegalArgumentException - if columnDimension(this) != rowDimension(m)

preMultiply

public RealMatrix preMultiply(RealMatrix m)
                       throws IllegalArgumentException
Returns the result premultiplying this by m.

Parameters:
m - matrix to premultiply by
Returns:
m * this
Throws:
IllegalArgumentException - if rowDimension(this) != columnDimension(m)

getData

public double[][] getData()
Returns matrix entries as a two-dimensional array.

Returns:
2-dimensional array of entries

getNorm

public double getNorm()
Returns the maximum absolute row sum norm of the matrix.

Returns:
norm

getSubMatrix

public RealMatrix getSubMatrix(int startRow,
                               int endRow,
                               int startColumn,
                               int endColumn)
                        throws MatrixIndexException
Gets a submatrix. Rows and columns are indicated counting from 0 to n-1.

Parameters:
startRow - Initial row index
endRow - Final row index
startColumn - Initial column index
endColumn - Final column index
Returns:
The subMatrix containing the data of the specified rows and columns
Throws:
MatrixIndexException - if the indices are not valid

getSubMatrix

public RealMatrix getSubMatrix(int[] selectedRows,
                               int[] selectedColumns)
                        throws MatrixIndexException
Gets a submatrix. Rows and columns are indicated counting from 0 to n-1.

Parameters:
selectedRows - Array of row indices.
selectedColumns - Array of column indices.
Returns:
The subMatrix containing the data in the specified rows and columns
Throws:
MatrixIndexException - if row or column selections are not valid

getRowMatrix

public RealMatrix getRowMatrix(int row)
                        throws MatrixIndexException
Returns the entries in row number row as a row matrix. Row indices start at 0.

Parameters:
row - the row to be fetched
Returns:
row matrix
Throws:
MatrixIndexException - if the specified row index is invalid

getColumnMatrix

public RealMatrix getColumnMatrix(int column)
                           throws MatrixIndexException
Returns the entries in column number column as a column matrix. Column indices start at 0.

Parameters:
column - the column to be fetched
Returns:
column matrix
Throws:
MatrixIndexException - if the specified column index is invalid

getRow

public double[] getRow(int row)
                throws MatrixIndexException
Returns the entries in row number row as an array.

Row indices start at 0. A MatrixIndexException is thrown unless 0 <= row < rowDimension.

Parameters:
row - the row to be fetched
Returns:
array of entries in the row
Throws:
MatrixIndexException - if the specified row index is not valid

getColumn

public double[] getColumn(int col)
                   throws MatrixIndexException
Returns the entries in column number col as an array.

Column indices start at 0. A MatrixIndexException is thrown unless 0 <= column < columnDimension.

Parameters:
col - the column to be fetched
Returns:
array of entries in the column
Throws:
MatrixIndexException - if the specified column index is not valid

getEntry

public double getEntry(int row,
                       int column)
                throws MatrixIndexException
Returns the entry in the specified row and column.

Row and column indices start at 0 and must satisfy

otherwise a MatrixIndexException is thrown.

Parameters:
row - row location of entry to be fetched
column - column location of entry to be fetched
Returns:
matrix entry in row,column
Throws:
MatrixIndexException - if the row or column index is not valid

transpose

public RealMatrix transpose()
Returns the transpose of this matrix.

Returns:
transpose matrix

inverse

public RealMatrix inverse()
                   throws InvalidMatrixException
Returns the inverse of this matrix.

Returns:
inverse matrix
Throws:
InvalidMatrixException - if this is not invertible

getDeterminant

public double getDeterminant()
Returns the determinant of this matrix.

Returns:
determinant

isSquare

public boolean isSquare()
Is this a square matrix?

Returns:
true if the matrix is square (rowDimension = columnDimension)

isSingular

public boolean isSingular()
Is this a singular matrix?

Returns:
true if the matrix is singular

getRowDimension

public int getRowDimension()
Returns the number of rows in the matrix.

Returns:
rowDimension

getColumnDimension

public int getColumnDimension()
Returns the number of columns in the matrix.

Returns:
columnDimension

getTrace

public double getTrace()
Returns the trace of the matrix (the sum of the elements on the main diagonal).

Returns:
trace

operate

public double[] operate(double[] v)
                 throws IllegalArgumentException
Returns the result of multiplying this by the vector v.

Parameters:
v - the vector to operate on
Returns:
this*v
Throws:
IllegalArgumentException - if columnDimension != v.size()

preMultiply

public double[] preMultiply(double[] v)
                     throws IllegalArgumentException
Returns the (row) vector result of premultiplying this by the vector v.

Parameters:
v - the row vector to premultiply by
Returns:
v*this
Throws:
IllegalArgumentException - if rowDimension != v.size()

solve

public double[] solve(double[] b)
               throws IllegalArgumentException,
                      InvalidMatrixException
Returns the solution vector for a linear system with coefficient matrix = this and constant vector = b.

Parameters:
b - constant vector
Returns:
vector of solution values to AX = b, where A is *this
Throws:
IllegalArgumentException - if this.rowDimension != b.length
InvalidMatrixException - if this matrix is not square or is singular

solve

public RealMatrix solve(RealMatrix b)
                 throws IllegalArgumentException,
                        InvalidMatrixException
Returns a matrix of (column) solution vectors for linear systems with coefficient matrix = this and constant vectors = columns of b.

Parameters:
b - matrix of constant vectors forming RHS of linear systems to to solve
Returns:
matrix of solution vectors
Throws:
IllegalArgumentException - if this.rowDimension != row dimension
InvalidMatrixException - if this matrix is not square or is singular


Copyright © 2003-2004 The Apache Software Foundation. All Rights Reserved.