jsci.maths.matrices
Class ComplexDiagonalMatrix
- java.lang.Object
-
- jsci.maths.matrices.Matrix
-
- jsci.maths.matrices.AbstractComplexMatrix
-
- jsci.maths.matrices.AbstractComplexSquareMatrix
-
- jsci.maths.matrices.ComplexDiagonalMatrix
-
- All Implemented Interfaces:
- java.io.Serializable, Algebra.Member, BanachSpace.Member, CStarAlgebra.Member, Module.Member, VectorSpace.Member, Ring.Member, AbelianGroup.Member, DiagonalMatrix, SquareMatrix, TridiagonalMatrix, Member
public class ComplexDiagonalMatrix extends AbstractComplexSquareMatrix implements DiagonalMatrix
The ComplexDiagonalMatrix class provides an object for encapsulating diagonal matrices containing complex numbers. Uses compressed diagonal storage.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor and Description ComplexDiagonalMatrix(Complex[] array)Constructs a matrix from an array containing the diagonal elements.ComplexDiagonalMatrix(Complex[][] array)Constructs a matrix from an array.ComplexDiagonalMatrix(double[] arrayRe, double[] arrayIm)Constructs a matrix by wrapping two arrays containing the diagonal elements.ComplexDiagonalMatrix(int size)Constructs an empty matrix.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method and Description AbstractComplexSquareMatrixadd(AbstractComplexSquareMatrix m)Returns the addition of this matrix and another.ComplexDiagonalMatrixadd(ComplexDiagonalMatrix m)Returns the addition of this matrix and another.ComplexSquareMatrixadd(ComplexSquareMatrix m)ComplexTridiagonalMatrixadd(ComplexTridiagonalMatrix m)Returns the addition of this matrix and another.AbstractComplexMatrixconjugate()Returns the complex conjugate of this matrix.Complexdet()Returns the determinant.booleanequals(AbstractComplexMatrix m, double tol)Compares two complex diagonal matrices for equality.doublefrobeniusNorm()Returns the Frobenius (l2) norm.ComplexgetElement(int i, int j)Returns an element of the matrix.doublegetImagElement(int i, int j)Returns the imag part of an element of the matrix.doublegetRealElement(int i, int j)Returns the real part of an element of the matrix.AbstractComplexMatrixhermitianAdjoint()Returns the hermitian adjoint of this matrix.static ComplexDiagonalMatrixidentity(int size)Creates an identity matrix.AbstractDoubleMatriximag()Returns the imaginary part of this complex matrix.doubleinfNorm()Returns the l
-norm.AbstractComplexSquareMatrixinverse()Returns the inverse of this matrix.AbstractComplexSquareMatrix[]luDecompose()Returns the LU decomposition of this matrix.AbstractComplexSquareMatrix[]luDecompose(int[] pivot)Returns the LU decomposition of this matrix.AbstractComplexMatrixmapElements(ComplexMapping f)Applies a function on all the matrix elements.AbstractComplexSquareMatrixmultiply(AbstractComplexSquareMatrix m)Returns the multiplication of this matrix and another.AbstractComplexVectormultiply(AbstractComplexVector v)Returns the multiplication of a vector by this matrix.ComplexDiagonalMatrixmultiply(ComplexDiagonalMatrix m)Returns the multiplication of this matrix and another.ComplexSquareMatrixmultiply(ComplexSquareMatrix m)Returns the multiplication of this matrix and another.ComplexTridiagonalMatrixmultiply(ComplexTridiagonalMatrix m)Returns the multiplication of this matrix and another.doubleoperatorNorm()Returns the operator norm.AbstractDoubleMatrixreal()Returns the real part of this complex matrix.AbstractComplexMatrixscalarMultiply(Complex z)Returns the multiplication of this matrix by a scalar.AbstractComplexMatrixscalarMultiply(double x)Returns the multiplication of this matrix by a scalar.voidsetElement(int i, int j, Complex z)Sets the value of an element of the matrix.voidsetElement(int i, int j, double x, double y)Sets the value of an element of the matrix.AbstractComplexSquareMatrixsubtract(AbstractComplexSquareMatrix m)Returns the subtraction of this matrix by another.ComplexDiagonalMatrixsubtract(ComplexDiagonalMatrix m)Returns the subtraction of this matrix by another.ComplexSquareMatrixsubtract(ComplexSquareMatrix m)ComplexTridiagonalMatrixsubtract(ComplexTridiagonalMatrix m)Complextrace()Returns the trace.Matrixtranspose()Returns the transpose of this matrix.-
Methods inherited from class jsci.maths.matrices.AbstractComplexSquareMatrix
add, directSum, involution, isHermitian, isUnitary, negate, norm, polarDecompose, scalarDivide, scalarDivide, scalarProduct, scalarProduct, subtract, tensor
-
Methods inherited from class jsci.maths.matrices.AbstractComplexMatrix
add, directSum, equals, equals, getSet, hashCode, multiply, multiply, scalarDivide, scalarMultiply, subtract, tensor, toString
-
Methods inherited from interface jsci.maths.fields.Ring.Member
multiply
-
Methods inherited from interface jsci.maths.algebras.VectorSpace.Member
scalarDivide
-
Methods inherited from interface jsci.maths.algebras.Module.Member
scalarMultiply
-
-
-
-
Constructor Detail
-
ComplexDiagonalMatrix
public ComplexDiagonalMatrix(double[] arrayRe, double[] arrayIm)Constructs a matrix by wrapping two arrays containing the diagonal elements.- Parameters:
arrayRe- an array of real valuesarrayIm- an array of imaginary values
-
ComplexDiagonalMatrix
public ComplexDiagonalMatrix(int size)
Constructs an empty matrix.- Parameters:
size- the number of rows/columns
-
ComplexDiagonalMatrix
public ComplexDiagonalMatrix(Complex[][] array)
Constructs a matrix from an array.- Parameters:
array- an assigned value- Throws:
MatrixDimensionException- If the array is not square.
-
ComplexDiagonalMatrix
public ComplexDiagonalMatrix(Complex[] array)
Constructs a matrix from an array containing the diagonal elements.- Parameters:
array- an assigned value
-
-
Method Detail
-
identity
public static ComplexDiagonalMatrix identity(int size)
Creates an identity matrix.- Parameters:
size- the number of rows/columns
-
equals
public boolean equals(AbstractComplexMatrix m, double tol)
Compares two complex diagonal matrices for equality.- Overrides:
equalsin classAbstractComplexMatrix- Parameters:
m- a complex diagonal matrix
-
real
public AbstractDoubleMatrix real()
Returns the real part of this complex matrix.- Overrides:
realin classAbstractComplexSquareMatrix- Returns:
- a double diagonal matrix
-
imag
public AbstractDoubleMatrix imag()
Returns the imaginary part of this complex matrix.- Overrides:
imagin classAbstractComplexSquareMatrix- Returns:
- a double diagonal matrix
-
getElement
public Complex getElement(int i, int j)
Returns an element of the matrix.- Specified by:
getElementin classAbstractComplexMatrix- Parameters:
i- row index of the elementj- column index of the element- Throws:
MatrixDimensionException- If attempting to access an invalid element.
-
getRealElement
public double getRealElement(int i, int j)Description copied from class:AbstractComplexMatrixReturns the real part of an element of the matrix.- Specified by:
getRealElementin classAbstractComplexMatrix- Parameters:
i- row index of the elementj- column index of the element
-
getImagElement
public double getImagElement(int i, int j)Description copied from class:AbstractComplexMatrixReturns the imag part of an element of the matrix.- Specified by:
getImagElementin classAbstractComplexMatrix- Parameters:
i- row index of the elementj- column index of the element
-
setElement
public void setElement(int i, int j, Complex z)Sets the value of an element of the matrix. Should only be used to initialise this matrix.- Specified by:
setElementin classAbstractComplexMatrix- Parameters:
i- row index of the elementj- column index of the elementz- a complex number- Throws:
MatrixDimensionException- If attempting to access an invalid element.
-
setElement
public void setElement(int i, int j, double x, double y)Sets the value of an element of the matrix. Should only be used to initialise this matrix.- Specified by:
setElementin classAbstractComplexMatrix- Parameters:
i- row index of the elementj- column index of the elementx- the real part of a complex numbery- the imaginary part of a complex number- Throws:
MatrixDimensionException- If attempting to access an invalid element.
-
det
public Complex det()
Returns the determinant.- Overrides:
detin classAbstractComplexSquareMatrix
-
trace
public Complex trace()
Returns the trace.- Overrides:
tracein classAbstractComplexSquareMatrix
-
infNorm
public double infNorm()
Returns the l
-norm.- Overrides:
infNormin classAbstractComplexMatrix
-
frobeniusNorm
public double frobeniusNorm()
Returns the Frobenius (l2) norm.- Overrides:
frobeniusNormin classAbstractComplexMatrix
-
operatorNorm
public double operatorNorm()
Returns the operator norm.- Overrides:
operatorNormin classAbstractComplexSquareMatrix
-
add
public AbstractComplexSquareMatrix add(AbstractComplexSquareMatrix m)
Returns the addition of this matrix and another.- Overrides:
addin classAbstractComplexSquareMatrix- Parameters:
m- a complex matrix- Throws:
MatrixDimensionException- If the matrices are different sizes.
-
add
public ComplexSquareMatrix add(ComplexSquareMatrix m)
-
add
public ComplexTridiagonalMatrix add(ComplexTridiagonalMatrix m)
Returns the addition of this matrix and another.- Parameters:
m- a complex tridiagonal matrix- Throws:
MatrixDimensionException- If the matrices are different sizes.
-
add
public ComplexDiagonalMatrix add(ComplexDiagonalMatrix m)
Returns the addition of this matrix and another.- Parameters:
m- a complex diagonal matrix- Throws:
MatrixDimensionException- If the matrices are different sizes.
-
subtract
public AbstractComplexSquareMatrix subtract(AbstractComplexSquareMatrix m)
Returns the subtraction of this matrix by another.- Overrides:
subtractin classAbstractComplexSquareMatrix- Parameters:
m- a complex matrix- Throws:
MatrixDimensionException- If the matrices are different sizes.
-
subtract
public ComplexSquareMatrix subtract(ComplexSquareMatrix m)
-
subtract
public ComplexTridiagonalMatrix subtract(ComplexTridiagonalMatrix m)
-
subtract
public ComplexDiagonalMatrix subtract(ComplexDiagonalMatrix m)
Returns the subtraction of this matrix by another.- Parameters:
m- a complex diagonal matrix- Throws:
MatrixDimensionException- If the matrices are different sizes.
-
scalarMultiply
public AbstractComplexMatrix scalarMultiply(Complex z)
Returns the multiplication of this matrix by a scalar.- Overrides:
scalarMultiplyin classAbstractComplexSquareMatrix- Parameters:
z- a complex number- Returns:
- a complex diagonal matrix
-
scalarMultiply
public AbstractComplexMatrix scalarMultiply(double x)
Returns the multiplication of this matrix by a scalar.- Overrides:
scalarMultiplyin classAbstractComplexSquareMatrix- Parameters:
x- a double- Returns:
- a complex diagonal matrix
-
multiply
public AbstractComplexVector multiply(AbstractComplexVector v)
Returns the multiplication of a vector by this matrix.- Overrides:
multiplyin classAbstractComplexMatrix- Parameters:
v- a complex vector- Throws:
DimensionException- If the matrix and vector are incompatible.
-
multiply
public AbstractComplexSquareMatrix multiply(AbstractComplexSquareMatrix m)
Returns the multiplication of this matrix and another.- Overrides:
multiplyin classAbstractComplexSquareMatrix- Parameters:
m- a complex matrix- Returns:
- an AbstractComplexMatrix or an AbstractComplexSquareMatrix as appropriate
- Throws:
MatrixDimensionException- If the matrices are different sizes.
-
multiply
public ComplexSquareMatrix multiply(ComplexSquareMatrix m)
Returns the multiplication of this matrix and another.- Parameters:
m- a complex square matrix- Throws:
MatrixDimensionException- If the matrices are different sizes.
-
multiply
public ComplexTridiagonalMatrix multiply(ComplexTridiagonalMatrix m)
Returns the multiplication of this matrix and another.- Parameters:
m- a complex tridiagonal matrix- Throws:
MatrixDimensionException- If the matrices are different sizes.
-
multiply
public ComplexDiagonalMatrix multiply(ComplexDiagonalMatrix m)
Returns the multiplication of this matrix and another.- Parameters:
m- a complex diagonal matrix- Throws:
MatrixDimensionException- If the matrices are different sizes.
-
inverse
public AbstractComplexSquareMatrix inverse()
Returns the inverse of this matrix.- Overrides:
inversein classAbstractComplexSquareMatrix- Returns:
- a complex diagonal matrix
-
hermitianAdjoint
public AbstractComplexMatrix hermitianAdjoint()
Returns the hermitian adjoint of this matrix.- Overrides:
hermitianAdjointin classAbstractComplexSquareMatrix- Returns:
- a complex diagonal matrix
-
conjugate
public AbstractComplexMatrix conjugate()
Returns the complex conjugate of this matrix.- Overrides:
conjugatein classAbstractComplexSquareMatrix- Returns:
- a complex diagonal matrix
-
transpose
public Matrix transpose()
Returns the transpose of this matrix.- Overrides:
transposein classAbstractComplexSquareMatrix- Returns:
- a complex diagonal matrix
-
luDecompose
public AbstractComplexSquareMatrix[] luDecompose(int[] pivot)
Returns the LU decomposition of this matrix.- Overrides:
luDecomposein classAbstractComplexSquareMatrix- Returns:
- an array with [0] containing the L-matrix and [1] containing the U-matrix.
-
luDecompose
public AbstractComplexSquareMatrix[] luDecompose()
Returns the LU decomposition of this matrix.- Overrides:
luDecomposein classAbstractComplexSquareMatrix- Returns:
- an array with [0] containing the L-matrix and [1] containing the U-matrix.
-
mapElements
public AbstractComplexMatrix mapElements(ComplexMapping f)
Applies a function on all the matrix elements.- Overrides:
mapElementsin classAbstractComplexSquareMatrix- Parameters:
f- a user-defined function- Returns:
- a complex diagonal matrix
-
-
DMelt 3.0 © DataMelt by jWork.ORG