Example 1: Nonlinear least-squares problem

A nonlinear least-squares problem is solved using a finite-difference Jacobian.

import com.imsl.math.*;

public class NonlinLeastSquaresEx1 {

    public static void main(String args[])
            throws NonlinLeastSquares.TooManyIterationsException {
        NonlinLeastSquares.Function zsf = new NonlinLeastSquares.Function() {
            public void f(double x[], double f[]) {
                f[0] = 10. * (x[1] - x[0] * x[0]);
                f[1] = 1. - x[0];
            }
        };

        int m = 2;
        int n = 2;
        double xguess[] = {-1.2, 1.};
        double xscale[] = {1., 1.};
        double fscale[] = {1., 1.};

        NonlinLeastSquares zs = new NonlinLeastSquares(m, n);
        zs.setGuess(xguess);
        zs.setXscale(xscale);
        zs.setFscale(fscale);
        double[] x = zs.solve(zsf);

        for (int k = 0; k < n; k++) {
            System.out.println("x[" + k + "] = " + x[k]);
        }
    }
}

Output

x[0] = 1.0
x[1] = 1.0
Link to Java source.