Conjugate Gradient Example 1:

The solution to a positive definite linear system is found. The coefficient matrix is stored as a full matrix.
using System;
using Imsl.Math;

public class ConjugateGradientEx1 : ConjugateGradient.IFunction
{
    private double[,] a = {
                {1.0, - 3.0, 2.0},
                {- 3.0, 10.0, - 5.0}, 
                {2.0, - 5.0, 6.0} };
    
    public void  Amultp(double[] p, double[] z)
    {
        
        double[] w = Matrix.Multiply(a, p);
        Array.Copy(w, 0, z, 0, z.Length);
    }
    
    public static void  Main(String[] args)
    {
        int n = 3;
        double[] b = {27.0, -78.0, 64.0};
        double[] solution = null;
        
        ConjugateGradientEx1 atp = new ConjugateGradientEx1();
        
        // Construct Cg object
        ConjugateGradient cg = new ConjugateGradient(n, atp);
        
        // Solve Ax=b
        solution = cg.Solve(b);
        new PrintMatrix("Solution").Print(solution);
    }
}

Output

       Solution
           0          
0   1.00000000000116  
1  -3.99999999999972  
2   6.99999999999984  


Link to C# source.