用复合梯形求积公式求积实验报告.doc
文本预览下载声明
用复合梯形求积公式求积
实验报告
学院:计算机学院
班级:信计0902班
姓名:高天宇
学号:0908060220
1、实验目的
1)观察复化梯形公式和复化辛普森公式随区间数n增加各自误差的减少规律;研究广义积分的数值计算如何将其转化为普通积分,再由已有数值积分方法进行计算;
2)利用复化梯形公式和复化辛普森公式计算定积分,编程实现。
、实验内容
分别用复化梯形公式和复化辛普森公式计算定积分,研究随着n增加各自误差的减少规律,取n=2,4,8,16,精确值为I=4.006994。、实验原理
原理:将区间[a,b]等分成N个子区间[x(k),x(k+1)](k=0,1,…..,N-1),
h=(b-a)/N,在每个子区间[x(k),x(k+1)]上使用体形公式,可求得结果。
、设计思想
用上述的的公式来计算,然后再将积分区间[,]进行n等分,得到n个小区间[xi,xi+1](i=0,1,2,…,n-1),每个小区间的长度为h=(b-a)/n,其中xi=a+i*h。按进行计算。、对应程序
#includeiostream.h
#includemath.h
double fun1(double a,double h,int n)
{
int i;
double sum=0,m;
for(i=1;i=n-1;i++)
{
m=a+i*h;
if(m==0)continue;
sum=sum+sqrt(m)*log(m);
}
return sum;
}
double get(double a)
{
if(a==0)a=0.00001;
return sqrt(a)*log(a);
}
void main()
{
double a=0,b=1;
int n;
while(1)
{
cout请输入要等分的子区间个数(n0):;
cinn;
double h;
double T,f0,f1,f2;
h=(b-a)/n;
f0=get(a);
f1=fun1(a,h,n);
f2=get(b);
T=h/2*(f0+2*f1+f2);
cout步长h为:hendl;
cout复化梯形公式计算结果T=Tendl;
}
}
7、实验结果
、实验体会
通过本次实验我熟悉用复化梯形公式求数值积分的全过程,并更加熟悉的掌握了复化梯形公式原理。使我对计算方法这门课有了进一步的理解,为以后的学习打下了良好的基础。
显示全部