Finds INTEGRAL of f(x) by Trapezoidal and Simpson method

coderzone's Avatar author of Finds INTEGRAL of f(x) by Trapezoidal and Simpson method
This is an article on Finds INTEGRAL of f(x) by Trapezoidal and Simpson method in C++.
Finds INTEGRAL of f(x) by Trapezoidal and Simpson method Simultaneously
Code:
  TRAPEZOIDAL RULE :-
  Integral of F(x) in between the limits a and b is given by
  =(h/2)*(y[0]+2(y[1]+y[2]+y[3]+..y[n-1])+y[n])
  where y[i]=F(x[i]),
  x[i]=x[i-1]+h,
  h=(b-a)/n.
Code:
  SIMPSON RULE :-
  Integral of F(x) in between the limits a and b is given by
  =(h/3)*(y[0]+4(y[1]+y[3]+y[5]+..y[n-1])+2*(y[2]+y[4]+y[6]+..y[n-2])+y[n])
  where y[i],x[i],h as defined above but n needed to be even

The CODE


Code:
#include <stdio.h>
#include <conio.h>
#define N 20
#define n 10
#define F(x) (1/(1+x))
float trap(float,float);
float simp(float,float);
void main()
{
	float a,b,t,s;
	printf("\nEnter the values of a and b\n");
	scanf("%f%f",&a,&b);
	t=trap(a,b);
	s=simp(a,b);
	printf("\nTrapezoidal answer = %g\n",t);
	printf("\nSimpson answer = %g\n",s);
	printf("\nPress any key to exit\n");
	getch();
}
float trap(float a,float b)
{
	float h,x[N],y[N],ans;
	int i;
	h=(b-a)/n;
	y[0]=F(a);
	ans=y[0];
	x[0]=a;
	for(i=1;i<n;i++)
	{
		x[i]=x[i-1]+h;
		y[i]=F(x[i]);
		ans=ans+2*y[i];
	}
	y[n]=F(b);
	ans=ans+y[n];
	ans=ans*h/2;
	return(ans);
}
float simp(float a,float b)
{
	float h,x[N],y[N],ans;
	int i;
	h=(b-a)/n;
	y[0]=F(a);
	ans=y[0];
	x[0]=a;
	for(i=1;i<n;i+=2)
	{
		x[i]=x[i-1]+h;
		y[i]=F(x[i]);
		ans=ans+4*y[i];
	}
	for(i=2;i<n;i+=2)
	{
		x[i]=x[i-1]+h;
		y[i]=F(x[i]);
		ans=ans+2*y[i];
	}
	y[n]=F(b);
	ans=ans+y[n];
	ans=ans*h/3;
	return(ans);
}
shabbir like this
helloword's Avatar, Join Date: Aug 2010
Light Poster
oh very good
helloword's Avatar, Join Date: Aug 2010
Light Poster
hello ,i'm study c++ now, i‘m from china ,my english is not so good ,I hope everyone can learn together
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
Nominate this article for Article of the month - Aug 2010 before September 15 2010.