网站大量收购独家精品文档,联系QQ:2885784924

龙贝格求-积分.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
龙贝格(Romberg)求积法 1.算法理论 Romberg求积方法是以复化梯形公式为基础,应用Richardson外推法导出的数值求积方法。 由复化梯形公式 可以化为 = 一般地,把区间[a,b]逐次分半k-1次,(k=1,2,……,n)区间长度(步长)为,其中mk=2k-1。 记= 由= 从而 =- (1) 按Richardson外推思想,可将(1)看成关于,误差为的一个近似公式,因而,复化梯形公式的误差公式为 -== (2) 取=有 -= (3) 误差为的误差公式 =+ 2。误差及收敛性分析 (1)误差,对复化梯形公式误差估计时,是估计出每个子区间上的误差,然后将n个子区间上的误差相加作为整个积分区间上的误差。 (2)收敛性,记,由于 = 上面两个累加式都是积分和,由于在区间上可积可知,只要的分划的最大子区间的长度时,也即时,它们的极限都等于积分值。可见,只要在区间上的可积的条件满足,由复化梯形求积公式计算所得复化梯形值序列都收敛于实际积分值。 3。算法: (1)、输入:a,b,epsilon (2)、令=b-a,计算= (3)、令k=2,= (4)、令=,计算 (5)、for j=2,3,……,k (6)、if {输出; return;} (7)、k=k+1; =; 跳转(4) (8)、结束 4.实例 用龙贝格算法计算积分值 I= 5.龙贝格求积源程序: //Romberg method for Integral //Projectname hu1.cpp //Executable file hu1.exe //Date:2004.12 //By Hu Bentao #include ”stdafx。h” #include stdio.h #include ”iostream.h #include math.h” #include conio.h” #include ”stdlib。h #define N1 20 #define N2 20 double fun(double x) {//被积函数设置 return (8/(1+x*x)); } void Romberg(double a,double b,double(*fun)(double),double epsilon) { int i,j,k; double h=b-a,temp; double T[20][20]; FILE *fp; if((fp=fopen(”200402157。txt”,”w”))==NULL){//将运算的中间结果和最终结果保存到文件200402157.txt puts(”\nopen file error!\n); return ; } fflush(stdin); fprintf(fp,”\n龙贝格求积计算的中间结果:); printf(”\n龙贝格求积计算的中间结果:”); T[1][1]=h*((*fun)(a)+(*fun)(b))/2; fprintf(fp,”\nT[1][1]=%f,T[1][1]); printf(”\nT[1][1]=%f”,T[1][1]); k=2;h/=2; while(1){ temp=0; for(i=1;i=pow(2,(k-2));i++){ temp+=(*fun)(a+(2*i-1)*h); } T[k][1]=temp*h+T[k—1][1]/2; fprintf(fp,”\nT[%d][1]=%f\t,k,T[k][1]); printf(\nT[%d][1]=%f\t,k,T[k][1]); for(j=2;j=k;j++){ T[k][j]=T[k][j-1]+(T[k][j-1]-T[k—1][j—1])/(pow(4,j-1)-1); fprintf(fp,”T[%d][%d]=%f\t,k,j,T[k][j]); printf(T[%d][%d]=%f\t,k,j,T[k][j]); } j——; if((fabs(T[k][j]—T[k][j—1]))epsilon){ fprintf(fp,”\n积分结果\tI(f)=); //coutendl〈OK!!”〈endl〈〈T”〈k〈j〈”=T[k][j]; fprintf(fp,%f\t,T[k][j]);//积分值输出 printf(”\n积分结果\tI(f)=”); //cout〈〈endl〈OK!!”〈〈endlT”k〈j〈=”〈T[

文档评论(0)

天马 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档