#include <stdio.h>
#include <conio.h>
#include <math.h>
#define f(x) (1/x) //use macros to define the integrand
//#define f(x) ((x)*(x)*sin(x))
//#define f(x) ((x)*(x)*Exp(2*(x))) //uncoment to change integrand
double calcAreaTrap(double a1, double b1){ //function calculates the area of trapezoid of height b1-a1 , and the center line f((a1+b1)/2).
return (b1-a1)*(f(a1)+f(b1))/2;
} // or this function return the approximation value between two end points a1 and b1 , based on the trapezoid method
double calcArea(double A, double B,int N) // this function will return approximation value between two end points,a and b, based on the method specified by flag
{
double buf = 0; // Declaration and initialization of the auxiliary variable tha will be contain approximation value between two points , a and b
double h = (B-A)/N; //Declaration and initialization of the auxiliary variable tha will be contain value of space step , h = b1-a1
//this part will calculate approximation value between two end points
for (int i =0;i<N;i++) {
buf=buf+calcAreaTrap(A+i*h,A+i*h+h);
}
return buf;
}
void OutPut(double Area){ //this function type on the screen area's value
printf("The integral's value is : %f", Area);
}
int main(int argc, char *argv[])
{
OutPut(calcArea(1,3,1000));// by using all define function program will calculate and output approximated value of the integral of the function f(x) tha define in head by macros in interval (0;3) with space step 0.03
getch();
return 0;
}
Comments
Leave a comment