当前位置:
文档之家› 龙贝格算法-数值分析-实验报告
龙贝格算法-数值分析-实验报告
3 / 13
一、任务综述于分析
1.1 任务
1、 根据所掌握龙贝格算法,独立编写程序,实现具体问题的求解等; 2、 自己设计一个多项式,根据设定的代数多项式进行测试,调式程序; 3、 对所设计的程序解决实际问题并分析,撰写分析报告
1.2 分析
1、 首先先明确什么是龙贝格算法,了解他的基本原理,画出流程图,编写程序代码。 2、 自己设计一个多项式,对他利用龙贝格算法求出他的积分。并与真实值比较,检测程序是否有错误。 并进一步修改完善程序。可以多试几个多项式,来判断程序的正确性。 3、 任务三实际上是求平面曲线长的问题。利用弧长微分公式可求得结果。
四、测试 ................................................................................................................................................. 8
主要参考资料
《数值分析简明教程》 《数值分析课程设计》
王能超 陈越、童若锋
高等教育出版社 浙江大学出版社
教研室签字: 年 月 日
院签字: 年 月 日
2 / 13
目录
目录 ......................................................................................................................................................... 3 一、任务综述于分析 ............................................................................................................................. 4
二、算法分析与设计 ............................................................................................................................. 4 三、程序实现 ......................................................................................................................................... 6
六、总结 ............................................................................................................................................... 13
二、算法分析与设计
根据梯形法的误差公式,积分值 的截断误差项整理,知 ( 由此可见,只要二分前后两个积分值 ) (1) 的误差 的一种补
与 相当接近,就可以保证计算结果 ),如果用这个误差值作为
很小。按式(2),积分值得误差大致等于 ( 偿,可以期望,所得到的 ̅ 应当是更好的结果。 (
5 / 13
三、程序实现
3.1 龙贝格算法的流程图如下:
输入 a , b ,
h=b-a;
( ( )
( ))
;k=1;
S=0;
x=a+h/2;
S=S+f(x);
x=x+h;
< x<b ?
(
)
(
)
k=1 No (
?
Yes
K=k+1;h=h/2;
)
k=2 No (
?
Yes
) Yes
k=3 No | Yes NO |
《数值分析)》课程设计任务书
指导教师姓名 课程设计题目 设计目的、任务和要求 (一) 目的 要求学生运用龙贝格算法解决实际问题(塑料雨篷曲线满足函数 y(x)=lsin(tx),则给定雨篷的长度后, 求所需要平板材料的长度)。 (二)任务 1. 根据所掌握龙贝格算法,独立编写程序,实现具体问题的求解等; 2. 自己设计一个多项式,根据设定的代数多项式进行测试,调式程序; 3. 对所设计的程序解决实际问题并分析,撰写分析报告。 (三)要求 学生 1 个人组成一个小组,要求根据上述任务,通过查找资料,完成程序设计,并撰写分析报告,报告 要体现工作过程、测试结果、分析等内容。 王恒友 龙贝格算法的应用 教研室 人数 1 学时 信计 5天
3.1 龙贝格算法的流程图如下: ....................................................................................................... 6 3.2 龙贝格算法的代码实现: ........................................................................................................... 7
)
(2)
4 / 13
直接验证易知 (3) 这就是说,用梯形法二分前后两个积分值 法的积分值 。 与 按式(3)做线性组合,结果得到辛普生
再考察辛普生法。按 ,其截断误差与 成正比。因此,若将步长折半,则误差相应的减 至 1/16,即有
由此得
不难验证, 上式右端的值其实等于
, 就是说, 用辛普生法二分前后的两个积分值 ,即有
1.1 任务 ............................................................................................................................................... 4 1.2 分析 ............................................................................................................................................... 4
?
?
No
输出
6 / 13
3.2 龙贝格算法的代码实现:
void { double h,T1,T2,S,S1,S2,C1,C2,R1,R2,z[100][4]; int k=1; h=b-a; while(1) { S=0; for(double x=a+h/2;x<b;x+=h) S+=f(x); T2=(T1+h*S)/2; z[k][0]=T2; S2=T2+(T2-T1)/3; z[k][1]=S2; if(k==1); else { C2=S2+(S2-S1)/15; z[k][2]=C2; if(k==2); else { R2=C2+(C2-C1)/63; z[k][3]=R2; if(k==3); else { if(fabs(R2-R1)<e) break; } R1=R2; } C1=C2; } k++;h/=2;T1=T2;S1=S2; } T1=(f(a)+f(b))*h/2; z[0][0]=T1; Romberg(double a,double b)
设计的方法和步骤 查阅资料,展开充分理论分析,在掌握算法原理后进行软件设计,完成下列任务: 1、 熟悉此次设计的目标,查阅相关资料; 2、 对算法理论进行剖析,论证算法实现的可行性; 3、 根据可行的算法设计,进行软件程序实现,并最终解决实际问题。
1 / 13
设计工作计划 本案例时间为 5 天,具体安排如下 熟悉课设目标,查阅相关资料:1 天 算法理论进行剖析,论证算法实现的可行性:1 天 根据可行的算法设计,进行软件程序实现:2 天 对所设计的程序解决实际问题并分析,撰写分析报告:1 天
4.1 测试函数(1):............................................................................................................................... 8 4.2 测试函数(2):.................................................................................................................................. 9 4.3 测试曲线(3):............................................................................................................................. 10
7 / 13
printf("%3c %6c %12c %12c %12c\n",'k','T','S','C','R'); for(int i=0;i<k;i++) { printf("%3d",i); if(i<3) { for(int j=0;j<=i;j++) printf("%12.7f ",z[i][j]); printf("\n"); } else { for(int j=0;j<4;j++) printf("%12.7f ",z[i][j]); printf("\n"); } } }