Class MathMatrix
java.lang.Object
MathMatrix
A class that models systems of linear equations (Math Matrices)
as used in linear algebra.
-
Constructor Summary
ConstructorDescriptionMathMatrix
(int[][] mat) create a MathMatrix with cells equal to the values in mat.MathMatrix
(int numRows, int numCols, int initialVal) create a MathMatrix of the specified size with all cells set to the intialValue. -
Method Summary
Modifier and TypeMethodDescriptionadd
(MathMatrix rightHandSide) implements MathMatrix addition, (this MathMatrix) + rightHandSide.boolean
override equals.int
Get the number of columns.int
Get the number of rows.getScaledMatrix
(int factor) Create and return a new Matrix that is a copy of this matrix, but with all values multiplied by a scale value.accessor: get a transpose of this MathMatrix.int
getVal
(int row, int col) get the value of a cell in this MathMatrix.boolean
Return true if this MathMatrix is upper triangular.multiply
(MathMatrix rightHandSide) implements matrix multiplication, (this MathMatrix) * rightHandSide.static boolean
rectangularMatrix
(int[][] mat) subtract
(MathMatrix rightHandSide) implements MathMatrix subtraction, (this MathMatrix) - rightHandSide.toString()
override toString.
-
Constructor Details
-
MathMatrix
public MathMatrix(int[][] mat) create a MathMatrix with cells equal to the values in mat. A "deep" copy of mat is made. Changes to mat after this constructor do not affect this Matrix and changes to this MathMatrix do not affect mat- Parameters:
mat
- mat !=null, mat.length > 0, mat[0].length > 0, mat is a rectangular matrix
-
MathMatrix
public MathMatrix(int numRows, int numCols, int initialVal) create a MathMatrix of the specified size with all cells set to the intialValue.
pre: numRows > 0, numCols > 0
post: create a matrix with numRows rows and numCols columns. All elements of this matrix equal initialVal. In other words after this method has been called getVal(r,c) = initialVal for all valid r and c.- Parameters:
numRows
- numRows > 0numCols
- numCols > 0initialVal
- all cells of this Matrix are set to initialVal
-
-
Method Details
-
getNumRows
public int getNumRows()Get the number of rows.- Returns:
- the number of rows in this MathMatrix
-
getNumColumns
public int getNumColumns()Get the number of columns.- Returns:
- the number of columns in this MathMatrix
-
getVal
public int getVal(int row, int col) get the value of a cell in this MathMatrix.
pre: row 0 <= row < getNumRows(), col 0 <= col < getNumColumns()- Parameters:
row
- 0 <= row < getNumRows()col
- 0 <= col < getNumColumns()- Returns:
- the value at the specified position
-
add
implements MathMatrix addition, (this MathMatrix) + rightHandSide.
pre: rightHandSide != null, rightHandSide.getNumRows() = getNumRows(), rightHandSide.numCols() = getNumColumns()
post: This method does not alter the calling object or rightHandSide- Parameters:
rightHandSide
- rightHandSide.getNumRows() = getNumRows(), rightHandSide.numCols() = getNumColumns()- Returns:
- a new MathMatrix that is the result of adding this Matrix to rightHandSide. The number of rows in the returned Matrix is equal to the number of rows in this MathMatrix. The number of columns in the returned Matrix is equal to the number of columns in this MathMatrix.
-
subtract
implements MathMatrix subtraction, (this MathMatrix) - rightHandSide.
pre: rightHandSide != null, rightHandSide.getNumRows() = getNumRows(), rightHandSide.numCols() = getNumColumns()
post: This method does not alter the calling object or rightHandSide- Parameters:
rightHandSide
- rightHandSide.getNumRows() = getNumRows(), rightHandSide.numCols() = getNumColumns()- Returns:
- a new MathMatrix that is the result of subtracting rightHandSide from this MathMatrix. The number of rows in the returned MathMatrix is equal to the number of rows in this MathMatrix.The number of columns in the returned MathMatrix is equal to the number of columns in this MathMatrix.
-
multiply
implements matrix multiplication, (this MathMatrix) * rightHandSide.
pre: rightHandSide != null, rightHandSide.getNumRows() = getNumColumns()
post: This method should not alter the calling object or rightHandSide- Parameters:
rightHandSide
- rightHandSide.getNumRows() = getNumColumns()- Returns:
- a new MathMatrix that is the result of multiplying this MathMatrix and rightHandSide. The number of rows in the returned MathMatrix is equal to the number of rows in this MathMatrix. The number of columns in the returned MathMatrix is equal to the number of columns in rightHandSide.
-
getScaledMatrix
Create and return a new Matrix that is a copy of this matrix, but with all values multiplied by a scale value.
pre: none
post: returns a new Matrix with all elements in this matrix multiplied by factor. In other words after this method has been called returned_matrix.getVal(r,c) = original_matrix.getVal(r, c) * factor for all valid r and c.- Parameters:
factor
- the value to multiply every cell in this Matrix by.- Returns:
- a MathMatrix that is a copy of this MathMatrix, but with all values in the result multiplied by factor.
-
getTranspose
accessor: get a transpose of this MathMatrix. This Matrix is not changed.
pre: none- Returns:
- a transpose of this MathMatrix
-
equals
override equals. -
toString
override toString. -
isUpperTriangular
public boolean isUpperTriangular()Return true if this MathMatrix is upper triangular. To be upper triangular all elements below the main diagonal must be 0.
pre: this is a square matrix. getNumRows() == getNumColumns()- Returns:
- true if this MathMatrix is upper triangular, false otherwise.
-
rectangularMatrix
public static boolean rectangularMatrix(int[][] mat)
-