#include <stdlib.h>
#include <stdio.h>
#include <math.h>
double trpzd_method(int, double, double);
double f(double);
int main()
{
int sub_intrvl;
double left_ep;
double right_ep;
double answer;
printf("Number of Subintervals: ");
scanf("%d", & sub_intrvl);
printf("Left endpoint: ");
scanf("%lf", & left_ep);
printf("Right endpoint: ");
scanf("%lf", & right_ep);
answer = trpzd_method(sub_intrvl, left_ep, right_ep);
printf("%lf", answer);
system("PAUSE");
}
double trpzd_method(int sub_intrvl, double left_ep, double right_ep)
{
double total = 0.0;
double final_result;
double first_value = f(left_ep);
double last_value = f(right_ep);
double increment = (right_ep - left_ep)/sub_intrvl;
while((left_ep + increment) <= right_ep);
{
total += f(right_ep + increment);
increment = (increment + ((right_ep - left_ep)/sub_intrvl));
}
final_result = increment*((0.5*(first_value + last_value)) + total);
return final_result;
}
double f(double x)
{
double e = 2.71828182845904523536;
double exponent = (-1)*(x)*(x);
double result = pow(e, exponent);
return result;
}