收藏 分享(赏)

实验4__数值积分.doc

上传人:tkhy51908 文档编号:4573036 上传时间:2019-01-02 格式:DOC 页数:5 大小:121.50KB
下载 相关 举报
实验4__数值积分.doc_第1页
第1页 / 共5页
实验4__数值积分.doc_第2页
第2页 / 共5页
实验4__数值积分.doc_第3页
第3页 / 共5页
实验4__数值积分.doc_第4页
第4页 / 共5页
实验4__数值积分.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、计算方法实验报告学 院: 计算机学院 专 业: 计算机科学与技术 指导教师: 爨莹 班级学号: 201207010229 姓 名: 图尔荪托合提 实验四 数值积分1、实验目的1、观察复化梯形公式和复化辛普森公式随区间数 n 增加各自误差的减少规律;研究广义积分的数值计算如何将其转化为普通积分,再由已有数值积分方法进行计算2、利用复化梯形公式和复化辛普森公式计算定积分,编程实现。2、实验要求: 1) 认真分析题目的条件和要求,复习相关的理论知识,选择适当的解决方案和算法;2) 编写上机实验程序,作好上机前的准备工作;3) 上机调试程序,并试算各种方案,记录计算的结果(包括必要的中间结果) ;4)

2、 分析和解释计算结果;5) 按照要求书写实验报告;3、实验内容:1) 分别用复化梯形公式和复化辛普森公式计算定积分,研究随着 n 增加各自误差的减少规律 ,取 n=2,4,8,16,精确值为 I=4.006994dxeI2012) 用复化辛普森公式计算积分 。dxI10sin3) 附加题:用四阶经典龙格-库塔公式求微分方程初值问题的数值解(取步长h=0.01):( )2.0x).(,493)(12Td4、题目:数值积分5、原理:(1) 复化梯形公式将区间 等分成 个子区间 ,,baN,1kx)1,0(N,在每个区间 上用梯形公式h,k)()2)(11 kxk xffhdfIk相加后得复化梯形公

3、式)(2)()(1bfxfafhdxfNkba NT记 为其中 。右端记为 。kxk,0 N当 时,N)()(2110NkNkhxfxfTbababa dxffdf )(即 收敛于 。NTx)((2) 复化辛浦生公式将区间 等分成 个子区间 ,每个,ba,2kx)1,0(N子区间的中点为 ,子区间长度为 ,在12kx)1,0(N abh每个区间 上用辛浦生公式,)()(4)(6)( 21222 kkkxk xffxfhdfIk相加后得复化辛浦生公式)()(4)(6)( 1212bffxfafhdxf NkkNkkba NS记 为其中 。2kxk,06、设计思想: 数值积分实际上都是基于插值的,

4、我们算的都是离散的一些个点与点对应的函数值,于是要求连续的积分是不可能的。记等距分点 a#includevoid main()double e=2.718282;double I0,I1,I2,I3;/I0,I1,I2,I3 分别表示函数在(0,2)区间取2,4,8,16 个点的近似函数值I0=0.5*(sqrt(2)+2*sqrt(1+e)+sqrt(1+exp(2);I1=0.25*(sqrt(2)+2*sqrt(1+exp(0.5)+2*sqrt(1+e)+2*sqrt(1+exp(1.5)+sqrt(1+exp(2);I2=0.125*(sqrt(2)+2*sqrt(1+exp(0.2

5、5)+2*sqrt(1+exp(0.5)+2*sqrt(1+exp(0.75)+2*sqrt(1+exp(1)+2*sqrt(1+exp(1.25)+2*sqrt(1+exp(1.5)+2*sqrt(1+exp(1.75)+sqrt(1+exp(2); I3=0.0625*(sqrt(2)+2*sqrt(1+exp(0.125)+2*sqrt(1+exp(0.25)+2*sqrt(1+exp(0.375)+2*sqrt(1+exp(0.5)+2*sqrt(1+exp(0.625)+2*sqrt(1+exp(0.75)+2*sqrt(1+exp(0.875)+2*sqrt(1+exp(1)+2*

6、sqrt(1+exp(1.125)+2*sqrt(1+exp(1.25)+2*sqrt(1+exp(1.375)+2*sqrt(1+exp(1.5)+2*sqrt(1+exp(1.625)+2*sqrt(1+exp(1.75)+2*sqrt(1+exp(1.875)+sqrt(1+exp(2);printf(“I0=%.6f,I1=%.6f,I2=%.6f,I3=%.6fn“,I0,I1,I2,I3);printf(“精确值 I=4.006994n“);2)用复化辛普森公式计算积分 dxI10sin#include #include double trapezia(double a,doubl

7、e b,double (*fun)(double),int n) /梯形法积分子程序 double Tn=0.0;double h;int k;h=(b-a)/n;for(k=1;kn;k+)Tn+=(*fun)(a+k*h); Tn=(*fun)(a)+(*fun)(b)+2*Tn;Tn=h*Tn/2;return Tn;double simpson(double a, double b, double (*fun)(double), int n)/利用梯形法的 simpson 积分子程序/指向函数的指针做行参 double T2n,Tn;Tn=trapezia(a,b,fun,n);T2n

8、=trapezia(a,b,fun,2*n); /fun 为指针名return (4*T2n-Tn)/3;double fun1(double x) if (x=0)return 1;elsereturn sin(x)/x;void main() double a=0,b=1,c;int n; /n 为区间数double (* p1)(double);/p 为指针数组,数组中元素为指针,指针类型为指向函数的指p0=fun1; /针,0 号未用printf(“请输入要分的区间数:“);scanf(“%d“,printf(“用复化 simpson 公式积分得: “);c=simpson(a,b,p0,n);printf(“%fn“,c);8、实验结果: 用复化辛普森公式计算积分 =0.946083dxI10sin用复化梯形公式和复化辛普森公式计算定积分 如下图:dxeI2019、图形(如果可视化)用复化梯形公式和复化辛普森公式计算定积分 Ix20用复化辛普森公式计算积分 dxI10sin10、 实验体会: 通过各种方法进行数值积分,比较计算结果,认识各个方法的区别,通过参考资料,与同学交流,致使程序调试成功,在以后的实践中,我还会继续加深自己这方面的能力。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 中学实验

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报