public class BandMatrix extends AbstractMatrix
| a11 | a12 | |||
| a21 | a22 | a23 | ||
| a31 | a32 | a33 | a34 | |
| a42 | a43 | a44 | a45 | |
| a53 | a54 | a55 |
has two lower diagonals and one upper diagonal. It will be stored in the array
| a11 | a21 | a31 | a21 | a22 | a32 | a42 | a23 | a33 | a43 | a53 | a34 | a44 | a54 | a45 | a55 |
Empty cells are allocated, but never referenced.
Matrix.NormnumColumns, numRows| Constructor and Description |
|---|
BandMatrix(int n,
int kl,
int ku)
Constructor for BandMatrix
|
BandMatrix(Matrix A,
int kl,
int ku)
Constructor for BandMatrix
|
BandMatrix(Matrix A,
int kl,
int ku,
boolean deep)
Constructor for BandMatrix
|
| Modifier and Type | Method and Description |
|---|---|
void |
add(int row,
int column,
double value)
A(row,column) += value |
BandMatrix |
copy()
Creates a deep copy of the matrix
|
double |
get(int row,
int column)
Returns
A(row,column) |
double[] |
getData()
Returns the matrix contents
|
Iterator<MatrixEntry> |
iterator() |
Vector |
multAdd(double alpha,
Vector x,
Vector y)
y = alpha*A*x + y |
int |
numSubDiagonals()
Returns the number of lower diagonals
|
int |
numSuperDiagonals()
Returns the number of upper diagonals
|
void |
set(int row,
int column,
double value)
A(row,column) = value |
Matrix |
set(Matrix B)
A=B. |
Matrix |
solve(Matrix B,
Matrix X)
X = A\B. |
Vector |
solve(Vector b,
Vector x)
x = A\b. |
Vector |
transMultAdd(double alpha,
Vector x,
Vector y)
y = alpha*AT*x + y |
Matrix |
transpose()
Transposes the matrix in-place.
|
Matrix |
zero()
Zeros all the entries in the matrix, while preserving any underlying
structure.
|
add, add, check, checkMultAdd, checkMultAdd, checkRank1, checkRank1, checkRank2, checkRank2, checkSize, checkSolve, checkSolve, checkTransABmultAdd, checkTransAmultAdd, checkTransBmultAdd, checkTransMultAdd, checkTranspose, checkTranspose, checkTransRank1, checkTransRank2, isSquare, max, max, mult, mult, mult, mult, multAdd, multAdd, multAdd, norm, norm1, normF, normInf, numColumns, numRows, rank1, rank1, rank1, rank1, rank1, rank1, rank2, rank2, rank2, rank2, scale, set, toString, transABmult, transABmult, transABmultAdd, transABmultAdd, transAmult, transAmult, transAmultAdd, transAmultAdd, transBmult, transBmult, transBmultAdd, transBmultAdd, transMult, transMult, transMultAdd, transpose, transRank1, transRank1, transRank2, transRank2, transSolve, transSolveclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitforEach, spliteratorpublic BandMatrix(int n,
int kl,
int ku)
n - Size of the matrix. Since the matrix must be square, this
equals both the number of rows and columnskl - Number of bands above the main diagonal (superdiagonals)ku - Number of bands below the main diagonal (subdiagonals)public BandMatrix(Matrix A, int kl, int ku)
A - Matrix to copy contents from. Only the parts of A
that lie within the allocated band are copied over, the rest
is ignoredkl - Number of bands above the main diagonal (superdiagonals)ku - Number of bands below the main diagonal (subdiagonals)public BandMatrix(Matrix A, int kl, int ku, boolean deep)
A - Matrix to copy contents from. Only the parts of A
that lie within the allocated band are copied over, the rest
is ignoredkl - Number of bands above the main diagonal (superdiagonals)ku - Number of bands below the main diagonal (subdiagonals)deep - True for a deep copy. For shallow copies, A must
be a banded matrixpublic BandMatrix copy()
Matrixcopy in interface Matrixcopy in class AbstractMatrixpublic Matrix zero()
Matrixpublic Vector multAdd(double alpha, Vector x, Vector y)
Matrixy = alpha*A*x + ymultAdd in interface MatrixmultAdd in class AbstractMatrixx - Vector of size A.numColumns()y - Vector of size A.numRows()public Vector transMultAdd(double alpha, Vector x, Vector y)
Matrixy = alpha*AT*x + ytransMultAdd in interface MatrixtransMultAdd in class AbstractMatrixx - Vector of size A.numRows()y - Vector of size A.numColumns()public Matrix solve(Matrix B, Matrix X)
MatrixX = A\B. Not all matrices support this operation, those that
do not throw UnsupportedOperationException. Note that it is
often more efficient to use a matrix decomposition and its associated
solversolve in interface Matrixsolve in class AbstractMatrixB - Matrix with the same number of rows as A, and the
same number of columns as XX - Matrix with a number of rows equal A.numColumns()
, and the same number of columns as Bpublic Vector solve(Vector b, Vector x)
Matrixx = A\b. Not all matrices support this operation, those that
do not throw UnsupportedOperationException. Note that it is
often more efficient to use a matrix decomposition and its associated
solversolve in interface Matrixsolve in class AbstractMatrixb - Vector of size A.numRows()x - Vector of size A.numColumns()public Matrix transpose()
Matrixtranspose in interface Matrixtranspose in class AbstractMatrixpublic double[] getData()
public void add(int row,
int column,
double value)
MatrixA(row,column) += valueadd in interface Matrixadd in class AbstractMatrixpublic void set(int row,
int column,
double value)
MatrixA(row,column) = valueset in interface Matrixset in class AbstractMatrixpublic double get(int row,
int column)
MatrixA(row,column)get in interface Matrixget in class AbstractMatrixpublic int numSubDiagonals()
public int numSuperDiagonals()
public Matrix set(Matrix B)
MatrixA=B. The matrices must be of the same sizeset in interface Matrixset in class AbstractMatrixpublic Iterator<MatrixEntry> iterator()
iterator in interface Iterable<MatrixEntry>iterator in class AbstractMatrixCopyright © 2015. All Rights Reserved.