Class TridiagMatrix

java.lang.Object
no.uib.cipr.matrix.AbstractMatrix
no.uib.cipr.matrix.TridiagMatrix
All Implemented Interfaces:
Iterable<MatrixEntry>, Matrix

public class TridiagMatrix extends AbstractMatrix
Tridiagonal matrix. Stored in three arrays, one of length n for the diagonal, two of length n-1 for the superdiagonal and subdiagonal entries.
  • Constructor Details

    • TridiagMatrix

      public TridiagMatrix(int n)
      Constructor for TridiagMatrix
      Parameters:
      n - Size of the matrix. Since the matrix must be square, this equals both the number of rows and columns
    • TridiagMatrix

      public TridiagMatrix(Matrix A)
      Constructor for TridiagMatrix
      Parameters:
      A - Matrix to copy from. Only the tridiagonal part is copied
    • TridiagMatrix

      public TridiagMatrix(Matrix A, boolean deep)
      Constructor for TridiagMatrix
      Parameters:
      A - Matrix to copy from. Only the tridiagonal part is copied
      deep - True for a deep copy, else it's shallow. For shallow copies, A must be a TridiagMatrix
  • Method Details

    • getDiagonal

      public double[] getDiagonal()
      Returns the diagonal entries. Length equal n
    • getSubDiagonal

      public double[] getSubDiagonal()
      Returns the sub diagonal entries. Length equal n-1
    • getSuperDiagonal

      public double[] getSuperDiagonal()
      Returns the super diagonal entries. Length equal n-1
    • add

      public void add(int row, int column, double value)
      Description copied from interface: Matrix
      A(row,column) += value
      Specified by:
      add in interface Matrix
      Overrides:
      add in class AbstractMatrix
    • get

      public double get(int row, int column)
      Description copied from interface: Matrix
      Returns A(row,column)
      Specified by:
      get in interface Matrix
      Overrides:
      get in class AbstractMatrix
    • set

      public void set(int row, int column, double value)
      Description copied from interface: Matrix
      A(row,column) = value
      Specified by:
      set in interface Matrix
      Overrides:
      set in class AbstractMatrix
    • copy

      public TridiagMatrix copy()
      Description copied from interface: Matrix
      Creates a deep copy of the matrix
      Specified by:
      copy in interface Matrix
      Overrides:
      copy in class AbstractMatrix
      Returns:
      A
    • zero

      public TridiagMatrix zero()
      Description copied from interface: Matrix
      Zeros all the entries in the matrix, while preserving any underlying structure. Useful for general, unstructured matrices.
      Specified by:
      zero in interface Matrix
      Overrides:
      zero in class AbstractMatrix
      Returns:
      A
    • solve

      public Matrix solve(Matrix B, Matrix X)
      Description copied from interface: 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 solver
      Specified by:
      solve in interface Matrix
      Overrides:
      solve in class AbstractMatrix
      Parameters:
      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
      Returns:
      X
    • solve

      public Vector solve(Vector b, Vector x)
      Description copied from interface: 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 solver
      Specified by:
      solve in interface Matrix
      Overrides:
      solve in class AbstractMatrix
      Parameters:
      b - Vector of size A.numRows()
      x - Vector of size A.numColumns()
      Returns:
      x
    • transpose

      public Matrix transpose()
      Description copied from interface: Matrix
      Transposes the matrix in-place. In most cases, the matrix must be square for this to work.
      Specified by:
      transpose in interface Matrix
      Overrides:
      transpose in class AbstractMatrix
      Returns:
      This matrix
    • iterator

      public Iterator<MatrixEntry> iterator()
      Specified by:
      iterator in interface Iterable<MatrixEntry>
      Overrides:
      iterator in class AbstractMatrix