Weddle’s Rule
#include<stdio.h>
#include<conio.h>
#include<math.h>
#define F(x) 1/(1+x*x)
int main (void)
{
int n,i;
float a,b,h,sum1=0.0,sum2=0.0,sum3=0.0,sum4=0.0,sum5=0.0,sum6=0.0;
float ans,x,f1,f2,f3,f4,f5,f6,f7,f8;
printf("Initial value of x: ");
scanf("%f",&a);
printf("Final value of x: ");
scanf("%f",&b);
printf("Number of segment(even no): ");
scanf("%d",&n);
h=(b-a)/n;
x=a;
f1=F(x);
x=x+h;
for(i=2;i<=n;i=i+6)
{
f2=F(x);
sum1=sum1+f2;
x=x+6*h;
}
x=a;
x=x+2*h;
for(i=3;i<n;i=i+6)
{
f3=F(x);
sum2=sum2+f3;
x=x+6*h;
}
x=a;
x=x+3*h;
for(i=4;i<n;i=i+6)
{
f4=F(x);
sum3=sum3+f4;
x=x+6*h;
}
x=a;
x=x+4*h;
for(i=5;i<n;i=i+6)
{
f5=F(x);
sum4=sum4+f5;
x=x+6*h;
}
x=a;
x=x+5*h;
for(i=6;i<=n;i=i+6)
{
f6=F(x);
sum5=sum5+f6;
x=x+6*h;
}
x=a;
x=x+6*h;
for(i=7;i<n;i=i+6)
{
f7=F(x);
sum6=sum6+f7;
x=x+6*h;
}
x=b;
f8=F(x);
ans=((f1+5*sum1+sum2+6*sum3+sum4+5*sum5+2*sum6+f8)*3*h)/10.0;
printf("\n\nIntegral from %f to %f , \nwhen h = %f \nis = %f",a,b,h,ans);
getch();
return 0;
}
