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.Norm
numColumns, 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, transSolve
public 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()
Matrix
copy
in interface Matrix
copy
in class AbstractMatrix
public Matrix zero()
Matrix
public Vector multAdd(double alpha, Vector x, Vector y)
Matrix
y = alpha*A*x + y
multAdd
in interface Matrix
multAdd
in class AbstractMatrix
x
- Vector of size A.numColumns()
y
- Vector of size A.numRows()
public Vector transMultAdd(double alpha, Vector x, Vector y)
Matrix
y = alpha*AT*x + y
transMultAdd
in interface Matrix
transMultAdd
in class AbstractMatrix
x
- Vector of size A.numRows()
y
- Vector of size A.numColumns()
public Matrix solve(Matrix B, Matrix X)
Matrix
X = 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 Matrix
solve
in class AbstractMatrix
B
- Matrix with the same number of rows as A
, and
the same number of columns as X
X
- Matrix with a number of rows equal A.numColumns()
,
and the same number of columns as B
public Vector solve(Vector b, Vector x)
Matrix
x = 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 Matrix
solve
in class AbstractMatrix
b
- Vector of size A.numRows()
x
- Vector of size A.numColumns()
public Matrix transpose()
Matrix
transpose
in interface Matrix
transpose
in class AbstractMatrix
public double[] getData()
public void add(int row, int column, double value)
Matrix
A(row,column) += value
add
in interface Matrix
add
in class AbstractMatrix
public void set(int row, int column, double value)
Matrix
A(row,column) = value
set
in interface Matrix
set
in class AbstractMatrix
public double get(int row, int column)
Matrix
A(row,column)
get
in interface Matrix
get
in class AbstractMatrix
public int numSubDiagonals()
public int numSuperDiagonals()
public Matrix set(Matrix B)
Matrix
A=B
. The matrices must be of the same sizeset
in interface Matrix
set
in class AbstractMatrix
public Iterator<MatrixEntry> iterator()
iterator
in interface Iterable<MatrixEntry>
iterator
in class AbstractMatrix
Copyright © 2013. All Rights Reserved.