1实验目的和要求

实验目的:
(1)熟悉复化梯形方法、复化Simpson方法、梯形递推算法、龙贝格算法;
(2)能编程实现复化梯形方法、复化Simpson方法、梯形递推算法、龙贝格算法;
(3)理解并掌握自适应算法和收敛加速算法的基本思想;
(4)分析实验结果体会各种方法的精确度,建立计算机求解定积分问题的感性认识

程序任务:
(1)设计复化梯形公式求积算法,编制并调试相应的函数子程序
(2)设计复化辛卜生求积算法,编制并调试相应的函数子程序
(3)用龙贝格算法计算
输入:积分区间,误差限
输出:序列Tn,Sn,Cn,Rn及积分结果(参考书本P55的表2-5)

取n=2,4,8,16,精确解为0.9460831

2实验环境和工具

用matlab或C语言实现

3实验结果

3.1算法流程图

复化辛卜生公式算法流程:

3.2程序核心代码

#include<stdio.h>
#include<math.h>
double ctl(double a,double b,int n);
double smp(double a,double b,int n);
void lbg(double a,double b,double e);
int main(void)
{int m,n;double a,b,s,e;printf("1.复化梯形公式\n2.复化辛卜生\n3.龙贝格算法\n\n");scanf("%d",&m);switch(m){case 1:{printf("输入下限、上限、分段数。\n\n");scanf("%lf %lf %d",&a,&b,&n);s = ctl(a,b,n);printf("%lf\n",s);break;}case 2:{printf("输入下限、上限、分段数。\n\n");scanf("%lf %lf %d",&a,&b,&n);s = smp(a,b,n);printf("%lf\n",s);break;}case 3:{printf("输入下限、上限、误差限。\n\n");scanf("%lf %lf %lf",&a,&b,&e);lbg(a,b,e);}}return 0;
}double f(double x)//原函数f(x)
{if(x==0){return 1;}else{return sin(x)/x;}
}double ctl(double a,double b,int n)//复化梯形公式
{double h = (b-a)/n;double t = 0;int i;for(i=1;i<n;i++){t = t+f(a+i*h);}return h/2*(f(a)+2*t+f(b));
}double smp(double a,double b,int n)//复化辛卜生
{double h = (b-a)/n;double x1 = f(a+h/2);double x2 = 0;int i;for(i=1;i<n;i++){x1 = x1+f(a+i*h+h/2);x2 = x2+f(a+i*h);}return h/6*(f(a)+4*x1+2*x2+f(b));
}void lbg(double a,double b,double e)//龙贝格算法
{double h = b-a;double t1,t2=0,s1=0,s2=0,c1=0,c2=0,r1=0,r2=1;double x,s;int k = 1;t1 = h/2*(f(a)+f(b));printf("\n%.7lf\n",t1);while(fabs(r2-r1)>=e){s = 0;x = a+h/2;while(x<b){s = s+f(x);x = x+h;}t2 = t1/2+h/2*s;s2 = t2+(t2-t1)/3;if(k==1){k = k+1;h = h/2;t1 = t2;s1 = s2;printf("%.7lf\t%.7lf\n",t1,s1);continue;}c2 = s2+(s2-s1)/15;if(k==2){k = k+1;h = h/2;t1 = t2;s1 = s2;c1 = c2;printf("%.7lf\t%.7lf\t%.7lf\n",t1,s1,c1);continue;}r2 = c2+(c2-c1)/63;k = k+1;h = h/2;t1 = t2;s1 = s2;c1 = c2;r1 = r2;printf("%.7lf\t%.7lf\t%.7lf\t%.7lf\n",t1,s1,c1,r1);}
}

3.3运行结果



3.4运行结果分析
根据运行结果可以得出结论:
复化梯形公式、复化辛卜生公式、龙贝格算法的精确度是逐渐提高的,复化梯形公式的精确度较低,复化辛卜生公式的精度较前者有所提高,龙贝格算法的精度是三者之中最高的。

4实验心得

在本次实验之中,我又一次回顾了复化梯形公式、复化辛卜生公式和龙贝格算法。这三种算法不仅仅在数学上有很大的作用,在计算机编程方面也有极大的帮助。
我认为在计算机编程的过程中,算法是极为重要的一环,甚至可以说是最为重要的一环,没有好的算法,就难以构造好的函数,就难以得到符合要求的程序。而计算方法课程教会了我们很多好的算法,这些算法对于一个合格的程序员是必不可少的。将这三种算法牢记于心,对我们编程有莫大的好处。
这次实验开始的时候,我对于三种算法的印象已经有些模糊了,而这次实验让我重新回忆起了这三种算法,这也给我敲响了警钟,计算方法课程上的知识对于我们是必备的,我们应该经常回顾这些知识,温故而知新,只有在不断固化对过去知识的记忆,并去学习新的知识,才能在未来做到不后悔。
每一次实验,都是对过去知识的回顾,同样也是在应用过去的知识,我应该珍惜每一次的实验机会,利用好每一次实验,充分提高自己,巩固根基,才能在未来的学习生活中取得更好的成绩。

合肥工业大学宣城校区计算方法 实验二相关推荐

  1. 合肥工业大学宣城校区计算方法 实验一

    1实验目的和要求 实验目的:理解拉格朗日插值算法及牛顿插值算法的程序实现方法. 程序任务: 1)依据课本18页图1-3编程实现拉格朗日插值算法,并完成54页课后习题6. 注:分别以三个小题目中给出的条 ...

  2. 合肥工业大学宣城校区数据挖掘实验 分类任务

    (文章最后有全部源代码) 一.实验要求 1.1实验目的 1)理解分类任务: 2)考察学生对数据预处理步骤的理解,强化预处理的重要性: 3)基模型可以调用已有的包,训练学生熟悉数据挖掘的基本框架: 4) ...

  3. 合肥工业大学宣城java实验报告,(合肥工业大学宣城校区JAVA作业问答题.doc

    (合肥工业大学宣城校区JAVA作业问答题 第一章 1.Java 语言有哪些特点? 答:Java 语言的特点有:简单性.面向对象技术.分布性.健壮性.安全性.体系结构中立.可移植性.解释执行.高性能.多 ...

  4. java实验报告合肥工业大学_合肥工业大学 计算机专业 计算方法实验报告

    <合肥工业大学 计算机专业 计算方法实验报告>由会员分享,可在线阅读,更多相关<合肥工业大学 计算机专业 计算方法实验报告(33页珍藏版)>请在人人文库网上搜索. 1.合肥工业 ...

  5. 合肥工业大学计算机与信息学院学生会宗旨,合肥工业大学宣城校区第一届学生会成立大会召开...

    11月1日晚,合肥工业大学宣城校区第一届学生会成立大会在宣城校区教学一号楼116室召开.宣城校区党委书记.管委会主任陈朝阳,党委副书记.管委会副主任蒋传东,管委会副主任胡学钢,综合办公室主任霍效忠.学 ...

  6. 合肥工业大学宣城校区计算机大赛,初赛公示_2020年全国高校计算机能力挑战赛...

    姓名 学校 奖项 彭正元 重庆大学 西南赛区 一等奖 肖念昕 阜阳师范大学 华东赛区 一等奖 鲁兆成 山东财经大学 华东赛区 一等奖 杨志杰 西北师范大学 西北赛区 一等奖 韩宇博 河南大学 华中赛区 ...

  7. 合肥工业大学宣城校区计算机大赛,合肥工业大学宣城校区“建行杯”计算机设计大赛 颁奖典礼举行...

    4月11日下午,合肥工业大学宣城校区"建行杯"计算机设计大赛颁奖典礼在教学楼114室举行.宣城校区领导陈朝阳.田作淳.蒋传东.胡学钢及各部门负责人.各系部主任,学校教务部副教务长张 ...

  8. 合肥工业大学宣城校区计算机大赛,合工大宣城校区学子!全国冠军!

    原标题:合工大宣城校区学子!全国冠军! 4月18日至21日,2019国家机器人发展论坛暨RoboCup机器人世界杯中国赛在浙江省绍兴市举行. 我校代表队夺得足球仿真2D项目全国冠军(一等奖),这是我校 ...

  9. 合肥工业大学宣城校区Java技术实验二 基于GUI的网络通信程序设计

    一.实验目的 1.掌握Java中GUI程序的编写,包括事件监听机制. 2.掌握Java的网络通信编程,ServerSocket,Socket类的使用. 3.掌握Java中多线程的编程,Thread类, ...

最新文章

  1. 做Linux背锅2年,我总结了这六类好习惯和30个血的教训
  2. yield( )函数的使用
  3. java表示语句结束的符号,java基础篇三(运算符号、表达式与语句)
  4. 线程创建后,立刻调用CloseHandle的原因
  5. hibernate的type类型对照表
  6. COLING 2018 最佳论文解读:序列标注经典模型复现
  7. ubuntu11.04下配置中文输入法
  8. 【原】Jenkins持续集成环境搭建之创建java项目的job【centos6.5 java maven git 项目】...
  9. svn更新项目时遇到被锁住的问题
  10. VMware虚拟机win10系统桥接模式连不上网
  11. java 泰勒级数_使用rSymPy计算泰勒级数
  12. 开始使用 Elasticsearch (1)
  13. go 怎么等待所有的协程完成_优雅地等待子协程执行完毕
  14. r720支持多少频率的内存吗_内存条全面选购指南,2020年有哪些内存条值得推荐...
  15. AutoJs学习-快手组队助力脚本
  16. 微信公众号头像如何修改
  17. 杰理之实验现象【篇】
  18. ABP+AdminLTE+Bootstrap Table权限管理系统第五节--WBEAPI及SwaggerUI
  19. 提取PDF内容保存到Excel--Python实现
  20. 均值漂移Mean Shift原理及推导过程

热门文章

  1. php对接苹果cms采集接口,苹果cms的资讯采集api接口以及使用教程
  2. C++ 课本习题(程序设计题)
  3. [经验分享] MXCHIP+Wifi、ZigBee、蓝牙的区别
  4. 【android编程】 第三讲-Android布局管理器
  5. 注册公司避开这3个坑,通过率提升99%!
  6. 小程序没有流量怎么办?
  7. Neo4j 图数据库在社交网络等领域的应用
  8. js数组拿到属性值 去找寻这个数组内的对象id
  9. 小桐学设计模式--单例模式
  10. 大数据程序员的工作职责是什么?