/* serial.c -- serial trapezoidal rule * * Calculate definite integral using trapezoidal rule. * The function f(x) is hardwired. * Input: a, b, n. * Output: estimate of integral from a to b of f(x) * using n trapezoids. * * See Chapter 4, pp. 53 & ff. in PPMPI. */ #include main() { float integral; /* Store result in integral */ float a, b; /* Left and right endpoints */ int n; /* Number of trapezoids */ float h; /* Trapezoid base width */ float x; int i; float f(float x); /* Function we're integrating */ printf("Enter a, b, and n\n"); scanf("%f %f %d", &a, &b, &n); h = (b-a)/n; integral = (f(a) + f(b))/2.0; x = a; for (i = 1; i <= n-1; i++) { x = x + h; integral = integral + f(x); } integral = integral*h; printf("With n = %d trapezoids, our estimate\n", n); printf("of the integral from %f to %f = %f\n", a, b, integral); } /* main */ float f(float x) { float return_val; /* Calculate f(x). Store calculation in return_val. */ return_val = x*x; return return_val; } /* f */