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.
using System;
using 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
Console.Out.WriteLine("The 1-norm of the matrix is "
+ A.OneNorm());
ComplexSparseMatrix.SparseArray sa = A.ToSparseArray();
Console.Out.WriteLine("row column value");
for (int i = 0; i < sa.NumberOfRows; i++)
{
for (int j = 0; j < sa.Index[i].Length; j++)
{
Console.Out.WriteLine(" " + 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.937005114344 row column value 0 0 (50,-15) 1 0 (-16,1) 1 2 (-53,-29) 2 0 (5,35) 2 2 (100,50) 3 0 (17,-68) 3 1 (9,8) 3 2 (0,-5) 4 0 (34,49) 4 1 (1,17) 4 2 (-7,-5) 5 0 (-5,20) 5 2 (34,-15)Link to C# source.