复化梯形

将积分区间[a,b]划分n等分,步长,求积节点在每个小区间上应用梯形公式

然后将它们累加求和,作为所求积分I的近似值.

式为复化梯形求积公式,下标n表示将区间n等分。

算法流程

算法代码

[cpp] view plaincopy
  1. double f(double x){
  2. if(x==0) return 1;
  3. else return (sin(x)/x);
  4. }
  5. double FuhuaTixing(int n,double a,double b){
  6. double h = (b-a)/n;
  7. double x = a;
  8. double s = 0;
  9. for(int k=0; k< n-1; k++){
  10. x += h;
  11. s += f(x);
  12. }
  13. double T = (f(a)+s*2+f(b))*h/2;
  14. return T;
  15. }
  16. int main(){
  17. char ans='n';
  18. do{
  19. cout<<"请输入积分区间(a,b):"<<endl;
  20. double a;
  21. double b;
  22. cin>>a>>b;
  23. cout<<"请输入等分份数n: "<<endl;
  24. int n; cin>>n;
  25. cout<<"由复化梯形公式球的结果:"<<FuhuaTixing(n,a,b)<<endl;
  26. cout<<"是否要继续?(y/n)";
  27. cin>>ans;
  28. }while(ans == 'y');
  29. return 0;
  30. }

复化辛复生

将积分区间[a,b]划分n等分,记子区间的中点为在每个小区间上应用辛普森公式,则有

其中

       

式为复化辛普森求积公式。

算法流程

算法代码

[cpp] view plaincopy
  1. double f(double x){
  2. if (x==0)
  3. return 1;
  4. else return (sin(x)/x);
  5. }
  6. double Xinfusheng(double a,double b,int n){
  7. double h = (b-a)/n;
  8. double x = a+1/2*h;
  9. double s = 4*f(x);
  10. for(int k=1;k<n;k++){
  11. x += 1/2*h;
  12. s += 4*f(x);
  13. x += 1/2*h;
  14. s += 2*f(x);
  15. }
  16. double T=(f(a)+s+f(b))*h/6;
  17. return T;
  18. }
  19. int main(){
  20. char ans='n';
  21. do{
  22. cout<<"请输入积分区间(a,b):"<<endl;
  23. double a;
  24. double b;
  25. cin>>a>>b;
  26. cout<<"请输入等分份数n: "<<endl;
  27. int n;
  28. cin>>n;
  29. cout<<"由复化梯形公式球的结果:"<<Xinfusheng(a,b,n)<<endl;
  30. cout<<"是否要继续?(y/n)";
  31. cin>>ans;
  32. }while(ans == 'y');
  33. return 0;
  34. }

实验过程原始记录

分别用复化梯形公式和复化辛浦生公式计算定积分

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

实验结果及分析

1、用复化梯形公式和复化辛甫生公式都能得到较为准确的结果,且等分份数越多,结果的精度越高,梯形公式虽然在等分16份时得到精度与等分4份时相同,但已经越来越接近精确解。辛甫生公式由于C++运算中双精度数值(double)只有7位有效数字的限制,增加等分份数时不容易看出其精度的增加。
2、比较两种方法运算的结果,复化辛甫生公式等分2份时实际要计算5个点的函数值,与复化梯形公式等分4份时计算量基本相同,但得到精度明显复化辛甫生公式要精确很多。
3、复化梯形公式和复化辛甫生公式对于光滑性较差的被积函数都能得到较为精确的结果,而且公式简单,十分利于编译简单的程序由计算机运算,因而得到广泛的应用。
4、实验中的主要误差来自于计算机浮点运算中的截余。

微分求积:复化梯形、复化辛浦生相关推荐

  1. 【数值分析】微分求积:复化梯形、复化辛浦生

    本科课程参见:<软件学院那些课> 复化梯形 将积分区间[a,b]划分n等分,步长,求积节点,在每个小区间上应用梯形公式 然后将它们累加求和,作为所求积分I的近似值. 记

  2. 复化辛甫生求积法matlab,数值分析习题.doc

    数值分析习题 第一章 绪论 姓名 学号 班级 习题主要考察点:有效数字的计算.计算方法的比较选择.误差和误差限的计算. 1 若误差限为,那么近似数0.003400有几位有效数字?(有效数字的计算) 2 ...

  3. python用复化梯形公式积分_复化梯形求积分——用Python进行数值计算

    用程序来求积分的方法有很多,这篇文章主要是有关牛顿-科特斯公式. 学过插值算法的同学最容易想到的就是用插值函数代替被积分函数来求积分,但实际上在大部分场景下这是行不通的. 插值函数一般是一个不超过n次 ...

  4. 计算方法之数值积分方法——复化梯形法,复化辛普森法,龙贝格法,三点高斯公式 附matlap程序下载

    数值积分 复化求积法就是将求积区间[a,b]划分为n等份,步长h=(b-a)/n,等分点为xi=a+ih,i=0,1,2,-,n.然后用低阶求积公式求的每个字段[xi,xi+1]上的积分值I,然后再将 ...

  5. c语言simpson积分计算方法,数值分析复化Simpson积分公式和复化梯形积分公式计算积分的通用程序...

    数值分析复化Simpson积分公式和复化梯形积分公式计算积分的通用程序 数值分析第五次程序作业 PB09001057 孙琪 [问题] 分别编写用复化Simpson积分公式和复化梯形积分公式计算积分的通 ...

  6. 乘幂法、复化梯形以及二分法求特征值【相关例题python实现】

    目录 写在前面的话 乘幂法 例题 代码 结果 二分法求对称三对角矩阵特征值 代码 结果 复化梯形 例题 代码 结果 写在前面的话 考试结束,<数值计算方法>编程作业发出来给大家看看~ 乘幂 ...

  7. 复化梯形c语言计算定积分,第六章 函数和宏定义实验(2)

    1.利用复化梯形公式计算定积分 2.计算Ackerman函数 3.编写计算x的y次幂的递归函数getpower(int x,int y),并在主程序中实现输入输出 4.编写计算学生年龄的递归函数 5. ...

  8. 用c语言写复化梯形积分公式,第六章 函数和宏定义实验(2)

    C程序设计实验报告 姓名:童飞    实验地点:教学楼514教室    实验时间:5月16日 实验项目: 1.利用复化梯形公式计算定积分 2.计算Ackerman函数 3.编写计算x的y次幂的递归函数 ...

  9. [计算机数值分析]复化梯形的递推公式的变步长算法求积分

    如下图变步长的算法框图,其中T1和T2分别代表二分前后的积分值. 问题描述: 运行示例: 源码: #include<iostream> #include<cmath> doub ...

最新文章

  1. 增强的Internet域内网关路由协议
  2. win10系统修改Intel VT-x时进入不了BIOS问题
  3. 亚马逊推出Simple Workflow Service手册
  4. Memcache 中实现消息队列
  5. python os popen_Python os.popen() 方法
  6. 记一次酷派尚锋Y75刷机
  7. Spring Cloud连载(2)搭建开发环境
  8. Java文件类– java.io.File
  9. 阶段3 3.SpringMVC·_07.SSM整合案例_03ssm整合之编写Spring框架
  10. 精读《如何在 nodejs 使用环境变量》
  11. java缓存管理,一级缓存和二级缓存
  12. SPSS-process插件-中介调节模型
  13. 谷歌邮箱lmap服务器填什么_常用邮箱SMTP服务器设置
  14. TXT文本 本地词典
  15. blos硬盘启动台式计算机,最新戴尔台式机bios设置硬盘启动图解
  16. 美国华盛顿警察局被敲诈勒索,怎样抵御新型勒索攻击?
  17. 关于 安装完MathType 后 Microsoft Word出现 53号错误 的解决方法
  18. 百度地图常用的几个webAPI(中文地址转经纬度,经纬度转中文地址)
  19. RSA加密算法(32bit比特级运算)(复杂版)(C++实现)
  20. zepto和jquery

热门文章

  1. 小工匠聊架构 - 如何优雅的做系统架构设计01
  2. MySQL-主从复制监控
  3. 白话Elasticsearch65-最少master候选节点以及ES集群脑裂问题
  4. 实战SSM_O2O商铺_42【前端展示】店铺列表页面View层的实现
  5. Typecho给文章设置永久链接
  6. 为什么是get()和set()方法?
  7. ubuntu 定时执行php文件,Ubuntu crontab 定时执行php脚本文件
  8. 静态文件 服务器,静态文件服务器
  9. python伪造浏览器请求头_Python3 伪装浏览器的方法示例
  10. atomic 内存序_并行编程的内存顺序 2020-11-23