The matrix product of two complex sparse matrices is computed using a method from the ComplexSparseMatrix
class. The one-norm of the result is also computed. The matrix and its norm are printed.
import com.imsl.math.*;
public class ComplexSparseMatrixEx1 {
public static void main(String args[])
{
ComplexSparseMatrix b = new ComplexSparseMatrix(6,6);
b.set(0, 0, new Complex(10.0, -3.0));
b.set(1, 1, new Complex(10.0, 0.0));
b.set(1, 2, new Complex(-3.0, 2.0));
b.set(1, 3, new Complex(-1.0,-1.0));
b.set(2, 2, new Complex(15.0, 5.0));
b.set(3, 0, new Complex(-2.0, 0.0));
b.set(3, 3, new Complex(10.0, 1.0));
b.set(3, 4, new Complex(-1.0, -2.0));
b.set(4, 0, new Complex(-1.0, 0.0));
b.set(4, 3, new Complex(-5.0, 7.0));
b.set(4, 4, new Complex(1.0, -3.0));
b.set(4, 5, new Complex(-3.0, 0.0));
b.set(5, 0, new Complex(-1.0, 4.0));
b.set(5, 1, new Complex(-2.0, 1.0));
b.set(5, 5, new Complex(6.0, -5.0));
ComplexSparseMatrix c = new ComplexSparseMatrix(6,3);
c.set(0, 0, new Complex(5.0, 0.0));
c.set(1, 2, new Complex(-3.0, -4.0));
c.set(2, 0, new Complex(1.0, 2.0));
c.set(2, 2, new Complex(7.0, 1.0));
c.set(3, 0, new Complex(2.0, -7.0));
c.set(4, 1, new Complex(-5.0, 2.0));
c.set(4, 2, new Complex(2.0, 1.0));
c.set(5, 2, new Complex(4.0, 0.0));
// A = b * c
ComplexSparseMatrix A = ComplexSparseMatrix.multiply(b, c);
// Get the one norm of matrix A
System.out.println("The 1-norm of the matrix is "+ A.oneNorm());
ComplexSparseMatrix.SparseArray sa = A.toSparseArray();
System.out.println("row column value");
for (int i = 0; i < sa.numberOfRows; i++)
{
for (int j = 0; j < sa.index[i].length; j++)
{
System.out.println(" "+ i + " "+sa.index[i][j]+
" "+
"("+Complex.real(sa.values[i][j]) +","+
Complex.imag(sa.values[i][j])+")");
}
}
}
}
The 1-norm of the matrix is 253.9370051143438 row column value 0 0 (50.0,-15.0) 1 0 (-16.0,1.0) 1 2 (-53.0,-29.0) 2 0 (5.0,35.0) 2 2 (100.0,50.0) 3 0 (17.0,-68.0) 3 1 (9.0,8.0) 3 2 (0.0,-5.0) 4 0 (34.0,49.0) 4 1 (1.0,17.0) 4 2 (-7.0,-5.0) 5 0 (-5.0,20.0) 5 2 (34.0,-15.0)Link to Java source.