ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:161.47KB ,
资源ID:4690311      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4690311.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数值分析第三次实习报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数值分析第三次实习报告.docx

1、数值分析第三次实习报告学生学号实验课成绩 武汉理工大学 学 生 实 验 报 告 书 实验课程名称: 数 值 分 析( 第三次实习) 开 课 名 称:计算机科学与技术学院 指导老师姓名: 熊盛武 学 生 姓 名: 学生专业班级:软件工程0803班 2009 2010学年 第 一 学期一、实习目的:(1)通过编程计算实践,体会和理解复化梯形公式和复化Simpson公式。(2)通过编程计算实践,搞清变步长梯形公式的计算流程。(3)通过编程计算实践,掌握和提高Romberg算法流程的控制技术。(4)通过各种方法对同一题目的求解,体会各种方法的精度差异。二、实习步骤:(1)分别画出复化梯形公式,复化Si

2、mpson公式,变步长梯形公式和Romberg公式的算法流程图。(2)分别用复化梯形公式和复化Simpson公式通过编程计算积分,并分析和比较算法的效率差异和精度差异。(3)用变步长梯形公式通过编程计算积分,并分析算法精度与二分法次数之间的关系。(4)用Romberg公式通过编程计算积分,并分析算法精度与二分法次数之间的关系。三、算法流程图:(一)复化梯形求算法积流程图(三)变步长梯形求积算法流程图(二)复化Simpson求积算法流程图(四)Romberg公式求积流程图四、编程计算积分(一)复化梯形: (1)复化梯形算法描述(1)输入求积区间a,b和区间等分数n(2)计算步长h h=(b-a)

3、/n(3)对于i=0到i=n-1计算节点函数值f(a+i*h)(4)计算积分值T=T+2*temp;Tn=(f(a)+f(b)+T)*h/2;(5)输出积分值(2)复化梯形求积程序源代码 #include#includedouble f(double t) return 1/(1+t*t);using namespace std;int main() int i,n; double h,a,b,T,temp,Tn; cout请输入求积区间:ab; cout请输入区间等分数:n; h=(b-a)/n; temp=0; T=0; for(i=1;in;i+) temp=f(a+i*h); T=T+

4、2*temp; Tn=(f(a)+f(b)+T)*h/2;cout经过复化梯形求积所得积分值Tn为: Tnendl;return 0;(3)调试过程,实验结果及分析: 1/(x*x)在区间0,1上8等分后,程序运行结果如下:对区间等分后求每个子区间上的积分值,然后将每个子区间的积分值相加,就得到整个积分区间上的积分值,梯形公式具有一次代数精度。(二)复化Simpson:(1)复化Simpson算法描述(1)输入求积区间a,b和区间等分数n(2)计算步长h h=(b-a)/n(3)对于i=0到n-1 计算节点函数值temp1=f(a+i*h); temp2=f(a+(i+0.5)*h); S1=

5、S1+2*temp1; S2=S2+4*temp2;(4)计算积分值 Sn=(f(b)-f(a)+S1+S2)*h/6;(5)输出积分值.(2)复化Simpson算法程序源代码#include#includedouble f(double t) return 1/(1+t*t);using namespace std;int main() int i,n; double h,a,b,S1,S2,temp1,temp2,Sn; cout请输入求积区间:ab; cout请输入区间等分数:n; h=(b-a)/n; temp1=0; temp2=0; S1=0; S2=0; for(i=0;in;i

6、+) temp1=f(a+i*h); temp2=f(a+(i+0.5)*h); S1=S1+2*temp1; S2=S2+4*temp2; Sn=(f(b)-f(a)+S1+S2)*h/6;cout经过复化Simpson求积所得积分值Sn为: Snendl;return 0;(3)调试过程,实验结果及分析: 1/(x*x)在区间0,1上8等分后,程序运行结果如下:复化Simpson求积公式具有三次代数精度,因此在区间和区间等分数相同时,所取得的积分值结果比梯形公式更加精确。和梯形公式一样都是利用线性组合来计算积分的近似值。(三)变步长梯形求积:(1)变步长梯形求积算法描述(1)输入求积区间a

7、,b和区间等分数n (2)计算步长h h=(b-a)/n(3)积分运算 For i=1 to n-1;temp1=f(a+i*h);T0=T0+2*temp1;(4)输出经过N-1次变步长所得积分值Tn(5)判断是否等分每个子区间后再求出积分值,是输入1,否输入0 If dir=0 goto 步骤9.(6)等分后积分N+; n=2*n; h=(b-a)/n; temp=0;For i=1to n/2temp2=f(a+(2*i-1)*h); temp=temp+temp2;Tn-1=Tn/2-1/2+temp*h; Tn=Tn-1(7)输出经过N-1次变步长所得积分值Tn(8)判断是否等分每个

8、子区间后再求出积分值,是输入1,否输入0 If dir=1 goto 步骤6.(9)输出经过N-1次变步长所得积分值Tn(10)结束。(2)变步长梯形求积程序源代码#include#includedouble f(double t) return 1/(1+t*t);using namespace std;int main() int i,n,N,dir; double h,a,b,T0,temp,temp1,temp2,temp3,T180; cout请输入求积区间:ab; cout请输入区间等分数:n; h=(b-a)/n; temp=0; temp1=0; temp2=0; temp3=

9、0; T0=0; N=1; for(i=1;in;i+) temp1=f(a+i*h); T0=T0+2*temp1; Tn-1=(f(a)+f(b)+T0)*h/2; cout经过n等分后积分值Tn为:Tn-11) temp=0; for(i=1;i(n/2+1);i+) temp2=f(a+(2*i-1)*h); temp=temp+temp2; Tn-1=Tn/2-1/2+temp*h; cout经过N-1次变步长所得积分值Tn为: Tn-1endl;cout是否需要继续二等分每个子区间,如果是,请输入:1 如果否,请输入:0dir;while(dir0) N+; n=2*n; h=(b

10、-a)/n;goto loop;if (dir1) cout经过N-1次变步长所得积分值Tn为: Tn-1endl;return 0;(3)调试过程,实验结果及分析: 1/(x*x)在区间0,1上2等分后,程序运行结果如下变步长梯形求积中对于n等分后Tn不满足精度要求可以等分每个子区间来求T2n的值此时只需计算新增节点的函数值,因而计算量变小了,程序运行速度也提高了。(四)Romberg:(1)Romberg公式求积算法描述(1)输入求积区间a,b和区间等分数n(2)计算步长 h h=(b-a)/n(3)计算 Tn(4)利用 Tn分别求出T2n,T4n,T8n(5)利用 Tn,T2n,T4n,

11、T8n分别求出Sn,S2n,S4n. (6)利用 Sn,S2n,S4n分别求出Cn,C2n.(7)利用 Cn,C2n求出Rn.(2)Romberg公式求积程序源代码#include#includedouble f(double t) return 1/(1+t*t);using namespace std;int main() int i,j,n; double h,a,b,T0,temp,temp1,temp2,temp3,T180,S180,C180,R180; cout请输入求积区间:ab; cout请输入区间等分数:n; h=(b-a)/n; temp=0; temp1=0; temp

12、2=0; temp3=0; T0=0; for(i=1;in;i+) temp1=f(a+i*h); T0=T0+2*temp1; Tn-1=(f(a)+f(b)+T0)*h/2; for(j=0;j3;j+) temp=0; n=2*n; h=(b-a)/n; for(i=1;i(n/2+1);i+) temp2=f(a+(2*i-1)*h); temp=temp+temp2; Tn-1=Tn/2-1/2+temp*h; Sn/8-1 =(4*Tn/4-1-Tn/8-1)/3; Sn/4-1 =(4*Tn/2-1-Tn/4-1)/3; Sn/2-1 =(4*Tn-1-Tn/2-1)/3; C

13、n/4-1=(16*Sn/2-1-Sn/4-1)/15; Cn/8-1=(16*Sn/4-1-Sn/8-1)/15; Rn/8-1=(64*Cn/4-1-Cn/8-1)/63; cout经过Romberg公式所得积分值Rn/8为Rn/8-1endl; return 0;(3)调试过程,实验结果及分析: 1/(x*x)在区间0,1上2等分后,程序运行结果如下:Romberg积分公式在积分结果中加入了事后误差估计值进行补偿,因而积分计算的收敛加速,并且仅采用梯形求积法不断折半步长,就可以逐步加工出Sn,S2n,S4n,Cn,C2n,Rn等精度较高的积分结果。 第三次试验小结1、通过试验进一步学习了

14、积分和微分的数值计算方法,其基本原理主要是逼近论,即设法构造某个简单函数近似表示,然后对求积或求导得到的积分或导数的近似值。基于差值原理,推导出数值积分和数值微分的基本公式。2、插值型求积公式有公式和公式两类。前者取等距节点,算法简单而且容易编制程序。但是,由于其收敛性和稳定性都没有保证,所以,常用的低阶复化公式。3、公式不但具有最高代数精度,而且收敛性和稳定性都有保证,因此是高精度的求积公式。公式还可以通过选择恰当的权函数,用于计算奇异积分和广义积分,也可以是一些复杂的积分计算简化。公式的主要缺点是节点与系数无规律。所以高阶公式不便于上机使用。实际应用中可以把低阶公式进行复化。4、算法是在积分区间逐次二分的过程中,通过对梯形值进行外推加速处理,从而获得高精度的积分近似值。它具有自动选取步长的特点,便于在计算机上使用。外推的思想在数值微分,微分方程数值解等方法中也可以得到应用。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1