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.

import com.imsl.math.*;

public class GenMinResEx1 implements GenMinRes.Function {

    static private double a[][] = {
        {33.0, 16.0, 72.0},
        {-24.0, -10.0, -57.0},
        {18.0, -11.0, 7.0}
    };
    static private 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);
        System.arraycopy(result, 0, z, 0, z.length);
    }

    public static void main(String args[]) throws Exception {
        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  1    
1  1.5  
2  1    

Link to Java source.