08/01/23 20:47:29
>>519
#include <stdio.h>
#include <math.h>
#define E 0.00001
double TrapMethod(double (*f)(double), double a, double b, double e)
{
if (fabs(b - a) < e) return 0.5 * (f(a) + f(b)) * fabs(b - a);
else {
double t = 0.5 * fabs(b - a);
return TrapMethod(f, a, a + t, e) + TrapMethod(f, a + t, b, e);
}
}
double func(double x) { return sqrt(4 - x * x); }
int main(void)
{
printf("%.10f\n", TrapMethod(func, 0.0, 2.0, E));
return 0;
}