Trapezoidal rule for given function
#include<iostream.h>
#include<conio.h>
#include<math.h>
float F(float x);
void main()
{ int n, i;
float a, b, h, sum, ict;
float F(float x);
cout<<endl<<"TRAPEZOIDAL RULE:"<<endl;
cout<<"input initial value of x"<<endl;
cin>>a;
cout<<"input final value of x:"<<endl;
cin>>b;
cout<<"input the segment width:"<<endl;
cin>>h;
if(a!=b)
{ n= (b-a)/h;
sum = (F(a) + F(b))/2.0;
for(i=1; i<=n-1; i++)
{ sum = sum + F(a+i*h);
}
ict = sum * h;
cout<<endl;
cout<<"Integration between "<<a<<" and "<<b<<" when h= "<<h<<" is "<<ict<<endl;
cout<<endl;
}
else
{ cout<<"exiting"<<endl;
}
getch();
clrscr();
}
float F(float x)
{ float f;
f = 1.0-exp(-x/2.0);
return (f);
}
Trapezoidal rule for tabulated function
#include<iostream.h>
#include<conio.h>
#include<math.h>
#define MAX 15
void main()
{ int n, n1, n2, i;
float a, b, h, sum, ict, x[MAX], y[MAX];
clrscr();
cout<<endl;
cout<<"input the no. of data points:"<<endl;
cin>>n;
cout<<"input the tablated values"<<endl;
cout<<"one set at each line:"<<endl;
for(i=1; i<=n; i++)
cin>>x[i]>>y[i];
cout<<"input initial value of x:"<<endl;
cin>>a;
cout<<"input final value of x:"<<endl;
cin>>b;
cout<<"input width of segments:"<<endl;
cin>>h;
n1=(int)(fabs(a-x[1])/h+1.5);
n2=(int)(fabs(b-x[1])/h+1.5);
sum=0.0;
for(i=n1; i<=n2-1; i++)
sum=sum+y[i]+y[i+1];
ict=sum*h/2.0;
cout<<"integral from "<<a<<" to "<<b<<" is "<<ict<<endl;
getch();
}
Simpson’s 1 by 3 using tabulated value
#include<iostream.h>
#include<conio.h>
#include<math.h>
#include<iomanip.h>
void main()
{ clrscr();
int i, n, n1, n2, m, l;
float x[15], y[15], a, b, h, sum, ics, i1, i2;
cout<<endl;
cout<<"input no. of data points:"<<endl;
cin>>n;
cout<<"input table values set by set"<<endl;
cout<<"one set on each line"<<endl;
for(i=1; i<=n; i++)
cin>>x[i]>>y[i];
cout<<"input initial value of x:"<<endl;
cin>>a;
cout<<"input final value of x:"<<endl;
cin>>b;
cout<<"input the segment width:"<<endl;
cin>>h;
n1 = (int)(fabs(a-x[1])/h+1.5);
n2 = (int)(fabs(b-x[1])/h+1.5);
m=n2-n1;
if(m%2==0)
{ i2=0.0;
l=n2-2;
}
else
{ i2=(y[n2-1]+y[n2])*h/2.0;
l=n2-3;
}
sum=0.0;
for(i=n1; i<=l; i=i+2)
sum=sum+y[i]+4*y[i+1]+y[i+2];
i1=sum*h/3.0;
ics=i1+i2;
cout<<"integral from "<<a<<" to "<<b<<" is "<<ics;
getch();
clrscr();
}
Simpson's 3 by 8 rule integrating a function
#include<iostream.h>
#include<conio.h>
#include<math.h>
#define F(x) 1-exp(-(x)/2.0)
void main()
{ clrscr();
int n, m, i;
float a, b, h, sum, ics, x, f1, f2, f3, f4;
cout<<"Initial value of x"<<endl;
cin>>a;
cout<<"Final value of x"<<endl;
cin>>b;
cout<<"Number of segments n (divisible by 3)"<<endl;
cin>>n;
h=(b-a)/n;
m=n/3;
sum=0.0;
x=a;
f1=F(x);
for(i=0;i<=m-1;i++)
{ f2=F((x+h)); c
f3=F((x+2*h));
f4=F((x+3*h));
sum=sum+f1+3*f2+3*f3+f4;
f1=f4;
x=x+3*h;
}
ics=sum*3*h/8.0;
cout<<"Integral from "<<a<<" to "<<b<<endl;
cout<<"when h= "<<h<<" is "<<ics<<endl;
getch();
}
No comments:
Post a Comment