C++ 数值积分分析和总结.docxVIP

  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文档。上传文档
查看更多
一、数值积分(定积分)的基本思想 1、定积分的意义:细分—求和—取极限。2、Newton—Leibniz 公式 ? b f (x)dx ? F (b) ? F (a) a 其中, F (x)被积函数 f (x)的原函数。 3、数值积分的基本思想 在积分区间内“细分—求和—控制精度”。数值积分是通过计算机进行的,不可以取极限,否则出现时间无限情况。 不取极限的积分是不精确的,因此需要进行精度控制。 二、实用的 Newton—Cotes 求积公式 牛顿、科特斯是两位伟大的科学家,他们在数值积分领域也做出了伟大的贡献,他们导出了任意 阶的牛顿—科特斯求积公式。其中最简单的两个公式具有非常实用的价值。 b ? a1、一阶 b ? a ? b f (x)dx ? [ f (a) ? f (b)] ? T a 2 一阶 Newton—Cotes 求积公式也叫梯形公式,它具有一次代数精度,也就是说,只有当被积函数是 0 次或 1 次多项式时(直线),该公式是精确的,在其它情况下只是近似解。 2、二阶 Newton—Cotes 求积公式 ? ? ? ?b ? ? ? ? ? b f (x)dx [ f (a) 4 f ( ) f (b)] S a 6 2 二 阶 Newton—Cotes 求 积 公 式 也 叫 Simposon 公式,它具有三次代数精度,也就是说,只有当被积函数是 0 次、1 次、2 次、3 次多 项式时,该公式是精确的,在其它情况下只是近似 解。 另有:四阶Newton—Cotes 求积公式定名为 Cotes 求积公式,也是实用的求积公式。 三、复化梯形求积公式及其程序设计 1、 算法: 将积分区间[a,b]等分成 n 个子区间: [x , x 0 1 ] 、[x , x 1 2 ]、[x 2 , x ] [x 3  n?2 , x n?1 ]、[x , x ] n?1 n ?其中:?子区间长度:h ? (b ? a) / n ? ?区间端点值:x k ? a ? k ? h 然后,在每个子区间上使用梯形求积公式计 算积分值,再将这些积分值求和就是总的积分值。 x0I ? 1 ? x 1 2 x 0 ?f (x 0 ) ? f (x 1 )?? h ?f (a) ? f (x )? 2 1 ?x ? x ? I 2 1 2 2 ?f (x 1 ) ? f (x 2 )?? h ?f (x 2 1 ) ? f (x )? 2 xI ? 3 x 3 ? x2 ? 2 f (x 2 ) ? f (x 3 )?? h ?f (x 2 2 ) ? f (x )? 3 ………………………………………… I ? xn n x n?1 2 ?f (x  n?1 ) ? f (x n )?? h ?f (x 2  n?1 ) ? f (b)? ?n I ? h ? f (a) ? f (b) ? 2?n?1 f (x )? i 2 ?? k ?? i?1 k ?1 即: T ?n T ? n h?f (a) ? f (b)? 2 ? h ? ? n?1 f (x ) k k ?1 h ? (b ? a) / n x ? a ? k ? h k 设计一个函数用来计算被积函数值。 设计一个函数实现复化梯形求积 主函数中进行数据准备、函数调用、结果输出。 3、 源程序: #include iostream.h double f(double x) { double y; y=x*x*x; return y; } double tn(double a,double b,int n) { double h=(b-a)/n; double t=0.0; double xk; for(int k=1;k=n-1;k++) { xk=a+k*h; t+=f(xk); } t=h*(f(a)+f(b))/2+t*h; return t; } void main() { double a=0.0; double b=4.0; int n=1024; couttn(a,b,n)endl; } 四、变步长梯形求积及其程序设计 在采用复化梯形求积时,要求将积分区间划分成若干个子区间,然后在每个子区间上应用梯形求积公式并求和。 从“积分精度”的角度来看,我们希望积分子 区间的长度越小越好,当积分区间达到无穷小时, 就是理论上的精确积分值。 从程序的“运行效率”角度来看,我们又希望 积分子区间的长度不能太小,否则计算工作量“太 大”。 合适选择子区间的大小,可以兼顾“积分精度” 和“计算效率”两方面的要求。然而,对于给定的精度要求,事先确定子区间的长度也是很困难的。 例如,对于上例,当要求精确到

文档评论(0)

hao187 + 关注
官方认证
文档贡献者

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

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档