计算方法实验六数值积分.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实用标准文案 精彩文档 山西大学计算机与信息技术学院 实验报告 姓 名 学 号 专业班级 课程名称 计算方法 实验日期 成 绩 指导老师 批改日期 实验名称 实验六 数值积分 实验目的: 利用复化梯形公式、复化辛普生公式和龙贝格数值积分公式计算的近似值。 实验方法: 将[a,b]区间n等分,记分点为,并在每个小区间[]上应用梯形公式 在每个小区间[]上,用辛普生公式 式中为[]的中点,即 先用梯形公式计算,然后,将求积区间(a,b)逐次折半的方法,令区间长度 计算,式中。 于是,得到辛普生公式。 柯斯特求积公式。 最后,得龙贝格求积公式。 利用上述各公式计算,直到相邻两次的积分结果之差满足精度要求。 实验内容 利用复化梯形公式、复化辛普生公式和龙贝格数值积分公式计算 的近似值,要求误差为,将计算结果与精确值比较,并对计算结果进行分析(计算量、误差) 实验程序: 复合梯形公式: #include stdio.h #include math.h #define esp 0.5e-7 #define a 1 #define b 2 #define c 0 #define d 1 #define E 2.71828182845904523536 #define f1(x) (x*pow(E,x)) #define f2(x) (4/(1+(x*x))) void fun1() { int i,n,k=0; double h,q,t,g; n=1; h=(double)(b-a)/2; t=h*(f1(a)+f1(b)); do { k++; q=t; g=0; for (i=1;i=n;i++) g+=f1((a+(2*i-1)*h)); t=(q/2)+(h*g); n*=2; h/=2; } while (fabs(t-q)esp); printf(函数1分了%d次:\n,k); printf(积分结果为:); printf(%12.8lf\n,t); } void fun2() { int i,n,k=0; double h,q,t,g; n=1; h=(double)(d-c)/2; t=h*(f2(c)+f2(d)); do { k++; q=t; g=0; for (i=1;i=n;i++) g+=f2((c+(2*i-1)*h)); t=(q/2)+(h*g); n*=2; h/=2; } while (fabs(t-q)esp); printf(函数2分了%d次:\n,k); printf(积分结果为:); printf(%12.8lf\n,t); } int main() { printf(//***********复合梯形公式***********//\n); fun1(); fun2(); return 0; } 复合辛普生公式代码: #include stdio.h #include math.h #define esp 0.5e-7 #define a 1 #define b 2 #define c 0 #define d 1 #define E 2.71828182845904523536 #define f1(x) (x*pow(E,x)) #define f2(x) (4/(1+(x*x))) void fun1() { int i,n,k=0; double f1,f2,f3,h,s0,s; f1=f1(a)+f1(b);

文档评论(0)

dmz158 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档