private double defaultIteration(MathFunctions.UnaryFunction <double> f, double a, double b, double estimate, int n) { double sum = 0; double stepSize = (b - a) / n; double x = a + (stepSize / 2); for (int i = 0; i < n; i++, x += stepSize) { sum += f(x); } return((estimate + (stepSize * sum)) / 2); }
private double midPointIteration(MathFunctions.UnaryFunction <double> f, double a, double b, double estimate, int n) { double sum = 0; double stepSize = (b - a) / n; double stepSizeMid = stepSize * (2 / 3); double x = a + (stepSize / 6); for (int i = 0; i < n; i++, x += stepSize) { sum += f(x) + f(x + stepSizeMid); } return((estimate + (stepSize * sum)) / 3); }