Friday, July 20, 2012

C Program for Simphson 1/3 rd rule





/*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