【】Richardson外推加速算法在数值公式中的应用教程分析.docVIP

【】Richardson外推加速算法在数值公式中的应用教程分析.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Richardson外推加速法在数值微分与积分 中的应用 信息与计算科学专业学生:XX 指导老师:XX [摘要]:本文介绍了数值微分与数值积分的Richardson外推加速算法,基于Euler-Maclaurin公式给出了算法的推导过程,再根据Richardson外推方法推导出了收敛更快的数值微分与积分公式,经数值实验验证该公式有良好的计算效果. 关键词:Richardson外推法,Romberg算法,Euler-Maclaurin公式 Abstract: the paper gives a introduction of Richardson’s Extrapolation Method, then, listing the derivation and proof of Richardson’s Extrapolation depending on Euler-Maclaurin. According to the Richardson’s Extrapolaton,this paper got the faster numerical differentiation and integral formula.The formula is prove to be efficient by numerical experiment. Keyword: Richardson抯 Extrapolation, Romberg抯 Algoritm, Euler-Maclaurin Algoritm la0 引言: 外推法用以低阶公式产生高精度收敛效果进而改善序列收敛效率,它是在20世纪前期由英国数学家,物理学家,气象学家Lewis Fry 提出的.在数值分析领域,外推法有很多实际应用,如隆贝格积分方法,是在梯形公式的基础上应用外推法导出的;还有用于求解常微分方程的Bulirsch–Stoer算法. 1 Richardson外推加速算法 1.1 Richardson外推加速算法 李查逊外推加速法基于如下原理 定理 设 ,则成立 式中系数 与无关 这里的与将要出现的等均为与无关的系数. 将以上两个式子做线性组合: 则: 若令 则可以从余项展开式中消去误差的主要部分项,从而得到 这样构造出的 ,其实就是柯特斯公式序列,它与积分值I的逼近阶为六阶如此继续下去,每加速一次,误差的量级便提高2阶按公式 经过次加速后,余项便取下列形式: 这就是外推加速法. 1.2 算法程序 #includeiostream #includeiomanip #includecmath using namespace std; double f(double x); double cal(int k, double h, int c); double a,b,T[100][100]; // 存放数据,为一个下三角矩阵int main() { a = 0; b = 1; //积分的上、下限double e , n, h = b-a; // e 为所设的精度,可以用输入来指定cout请输入控制精度eendl;cine; int i, m, k=0,c=1; T[0][0] = h*(f(a)+f(b))/2; // 算出第一个梯形解do{ k++; T[k][0] = cal(k,h,c); // h = (b-a)/c ; c是分区间的段数,h 是步长m = 1; while(m = k ){ //向后递推,核心算法n = pow(4.0, m); // n = 4^m T[k][m] = n*T[k][m-1]/(n-1) - T[k-1][m-1]/(n-1); m++; }//while h /= 2; c *=2; }while(fabs(T[k][k] - T[k-1][k-1]) e); //没达到设定精度则继续向下算,否则出// coutleftsetw(8)Ksetw(8)Tsetw(9)Ssetw(10)Csetw(10)Rendl for(i = 0; i = k; i++){ //数据输出couti ; for(int j=0; j=i; j++) coutleftfixedsetw(10)setprecision(6)T[i][j]; //设制了输出数据的度,小数点后6位coutendl; } cinn; return 0; } double cal(int k, double h, int c){ //复化梯形公式的递推关系double t = 0; int i; for(i = 0; i c; i++) t += f(a+(i+0.5)*h); return T[k-1][0]/2 +

文档评论(0)

奇缘之旅 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档