#include<stdio.h>
#include<conio.h>
#include<math.h>
float fn(float x)
{
float y;
y=pow(x,0.1)*(1.2-x)*(1-exp(20*(x-1)));
return(y);
}
main()
{
int n,i,c;
float x0,t,xn,h,sum,area,a;
float fn(float);
printf("\nEnter the values of x0,xn,n:\n");
scanf("%f%f%d",&x0,&xn,&n);
h=(xn-x0)/n;
printf("\nEnter the value of c 1 for tripazoidal and 2 for simpson:\n");
scanf("%d",&c);
//Tripazoidal rule
switch(c)
{
case 1:
sum=0;
for(i=1;i<n;i++)
{
t=x0+i*h;
sum=sum+(2*fn(t));
}
sum=sum+fn(x0)+fn(xn);
area=h*sum/2;
printf("\n The Integral value by tripazoidal rule =%f",area);
break;
// Simpsons rule for even segments
case 2:
if(n%2==0)
{
sum=0;
for(i=1;i<n;)
{
t=x0+i*h;
sum=sum+(4*fn(t));
i=i+2;
}
for(i=2;i<n-1;)
{
t=x0+i*h;
sum=sum+(2*fn(t));
i=i+2;
}
sum=sum+fn(x0)+fn(xn);
area=h*sum/3;
printf("\n The Integral value by simpson`s rule =%f",area);
}
//Simpsons rule for odd segments
else
{
sum=0;
sum=h*(fn(x0)+fn(x0+h))/2;
for(i=2;i<n;)
{
t=x0+i*h;
sum=sum+(4*fn(t));
i=i+2;
}
for(i=3;i<n-1;)
{
t=x0+i*h;
sum=sum+(2*fn(t));
i=i+2;
}
sum=sum+fn(x0)+fn(xn);
area=h*sum/3;
printf("\n the area by simpson`s rule =%f\n\n",area);
}
}
}