Conjugate Gradient Example 1:

The solution to a positive definite linear system is found. The coefficient matrix is stored as a full matrix.

import com.imsl.math.*;

public class ConjugateGradientEx1 implements ConjugateGradient.Function {

    static private double[][] a = {
        {1.0, -3.0, 2.0},
        {-3.0, 10.0, -5.0},
        {2.0, -5.0, 6.0}
    };
    static private double[] b = {27.0, -78.0, 64.0};

    public void amultp(double[] p, double[] z) {
        double w[] = Matrix.multiply(a, p);
        System.arraycopy(w, 0, z, 0, z.length);
    }

    public static void main(String args[]) throws Exception {
        int n = 3;

        ConjugateGradientEx1 atp = new ConjugateGradientEx1();

        // Construct Cg object
        ConjugateGradient cg = new ConjugateGradient(n, atp);

        // Solve Ax=b
        new PrintMatrix("Solution").print(cg.solve(b));
    }
}

Output

Solution
   0   
0   1  
1  -4  
2   7  

Link to Java source.