Example 1: Solve a Small Linear System

A solution to a small linear system is found. The coefficient matrix is stored as a full matrix and no preconditioning is used. Typically, preconditioning is required to achieve convergence in a reasonable number of iterations.
using System;
using Imsl.Math;
using IMSLException = Imsl.IMSLException;

public class GenMinResEx1 : GenMinRes.IFunction
{
	private static double[,] a = {
					{33.0, 16.0, 72.0},
					{-24.0, -10.0, -57.0},
					{18.0, -11.0, 7.0}
				};
	private static double[] b = {129.0, -96.0, 8.5};
	// If A were to be read in from some outside source the   //
	// code to read the matrix could reside in a constructor. //
	
	public void  Amultp(double[] p, double[] z)
	{
		double[] result;
		result = Matrix.Multiply(a, p);
		Array.Copy(result, 0, z, 0, z.Length);
	}
	
	public static void  Main(String[] args)
	{
		int n = 3;
		
		GenMinResEx1 atp = new GenMinResEx1();
		
		// Construct a GenMinRes object
		GenMinRes gnmnrs = new GenMinRes(n, atp);
		
		// Solve Ax = b
		new PrintMatrix("x").Print(gnmnrs.Solve(b));
	}
}

Output

          x
           0          
0  0.999999999999999  
1  1.5                
2  1                  


Link to C# source.