/*Simphson's 1/3rd Rule */
#include<stdio.h>
#include<conio.h>
#include<alloc.h>
double value(double);
double **e,n;
void main()
{
double p,i,j,a,b,m,*x,*f,h,odd,even,I;
clrscr();
printf("Enter Degree of the Equation");
scanf("%lf",&n);
p=n;
e=(double**)malloc(((n+1)*2)*sizeof(double));
printf("Enter Values of coeff. in decreasing order");
for(i=0;i<=n;i++)
{
scanf("%lf",&e[i][0]);
e[i][1]=p;
p--;
}
printf("Enter values of a,b,n");
scanf("%lf %lf %lf",&a,&b,&m);
x=(double*)malloc((m+1)*sizeof(double));
f=(double*)malloc((m+1)*sizeof(double));
h=(b-a)/m;
x[0]=a;
for(i=1;i<=m;i++)
{
x[i]=x[i-1]+h;
printf(" %lf",x[i]);
}
for(i=0;i<=m;i++)
{
f[i]=value(x[i]);
printf(" %lf",f[i]);
}
odd=0;
for(i=1;i<m;i+=2)
{
odd+=f[i];
}
even=0;
for(i=2;i<m-1;i+=2)
{
even+=f[i];
}
I=((b-a)/3*n)*(f[0]+4*odd+2*even+f[m+1]);
printf("Result=%lf",I);
getch();
}
double value(double a)
{
double s=0,i;
for(i=0;i<=n;i++)
{
s=s+e[i][0]*pow(a,e[i][1]);
}
return s;
}
No comments:
Post a Comment