public class Newton { public static int j; public static double newt(MathFunction2 func, double a, double b, double epsilon) { double guess= 0.5*(a + b); for (j= 0; j < JMAX; j++) { double fval= func.fn(guess); double fder= func.fd(guess); double dx= fval/fder; guess -= dx; if ((a - guess)*(guess - b) < 0.0) { System.out.println("Error: out of bracket"); return ERR_VAL; } if (Math.abs(dx) < epsilon) { System.out.println("\nNewton iterations: "+ j); return guess; } } System.out.println("Maximum iterations exceeded"); return guess; } public static final int JMAX= 50; public static final double ERR_VAL= -10E10; }