// Integral-romberg方法求积分.cpp : 定义控制台应用程序的入口点。
//
/*
romberg方法求积分
方法也称为逐次分半加速法。它是在梯形公式,simpson公式和newton-cotes公式之间的关系的基础上,
构造出一种加速计算积分的方法。作为一种外推算法,它在不增加计算量的前提下提高了误差的精度。
在等距基点的情况下,用计算机计算积分值通常都采用吧区间逐次分半的方法进行。
这样,前一次分割得到的函数值在分半以后仍然可以被利用,并且易于编程。运行结果如下:
输入:
0
3.14159
输出:Romberg- -12.0703
增加迭代次数或提高精度时,程序运行
得到的结果几乎没有什么变化。可以看到,
和Simpson方法运行的结果基本一致,但
Romberg法速度更快、精度更高*/#include "stdafx.h"#include<iostream>
#include<math.h>
#define epsilon 0.00001
#define COUNT 100
using namespace std;double fun(double x)
{return x*x;
}double Romberg(double a,double b)
{int m ,n;double h,x,s,q,ep;double p,*R =new double[COUNT];h=b-a;R[0]= h*(fun(a)+ fun(b))/2.0;m=1;n=1;ep=epsilon+1.0;while ((ep >= epsilon)&& (m <COUNT)){p = 0.0;{for(int i=0;i<n;i++){x = a+ (i+0.5)*h ;p= p + fun(x);}p= (R[0]+ h*p)/2.0;s = 1.0;for(int k=1;k<=m;k++){s = 4.0*s;q= (s*p-R[k-1])/(s-1.0);R[k-1]= p;p =q;}p=fabs(q -R[m-1]);m =m + 1;R[m-1]= q;n = n + n;h = h/2.0;}return (q);}
}int _tmain(int argc, _TCHAR* argv[])
{double a,b;cout<<"Input a,b:a为下限,b为上限"<<endl;cin>>a>>b;cout<<"Romberg="<<Romberg(a,b)<<endl;system("pause");return 0;
}

Romberg求积分算法相关推荐

  1. VS2017/c语言-求积分算法

    用c语言计算积分 一.积分计算原理 先把积分区域划分为n个曲边梯形,每个求值点为曲边梯形的两个底边中点,求得每个曲边梯形的面积即为积分值 用近似法求得积分:当n为无穷大时,可将该曲边梯形近似看成矩形, ...

  2. 龙贝格求积分算法例题_数值分析实习作业之龙贝格求积

    北京化工大学数值分析,龙贝尔求积, 实习题五:用龙贝格求积公式法计算习题五第一题积分,是结果尽可能准确(eps = 0.000001) 主程序: %习题五:用龙贝格求积公式计算下列积分 clear c ...

  3. C++实现复化梯形公式求积分算法

    1. 算法原理简介 步1 将积分区间2n等分; 步2 调用复化梯形公式: 2. 应用实例 取 n=10,利用复化梯形公式计算积分: 3. 程序代码 #include <iostream> ...

  4. 抛物线求积公式求积分算法matlab,数值计算实验报告---复合求积公式(梯形、抛物线、龙贝格)、导数求值(三点、四点、五点公式)...

    ----------------------个人作业,如果有后辈的作业习题一致,可以参考学习,一起交流,请勿直接copy ··复合抛物线公式: ··龙贝格公式: 四.实验内容 ------1 实验题目 ...

  5. C语言实现变步长求积分算法

    链接:https://blog.csdn.net/chen_dsir/article/details/71257631  博主详细介绍了复合梯形公式, 链接:https://wenku.baidu.c ...

  6. C++实现复化辛普森公式求积分算法

    1. 算法原理简介 步1 将积分区间 [a,b] 分成 n 等分,分点为 xk=a+kh(k=0,1,⋯,n),其中 h=(b-a)/n. 步2 记区间 [xk,x(k+1)] 的中点为 x(k+1/ ...

  7. 抛物线求积公式求积分算法matlab,基于Matlab的数值积分公式问题.doc

    基于Matlab的数值积分公式问题 数值分析 学 号: 学 生 姓 名 :教 师 : 教师 2数值积分算法介绍............................................. ...

  8. matlab对信号积分,对信号求积分 - Simulink - MathWorks 中国

    说明 Integrator 模块输出其输入信号相对于时间的积分值. Simulink® 将 Integrator 模块作为具有一种状态的动态系统进行处理.模块动态由以下方程指定: {x˙(t)=u(t ...

  9. matlab用辛普森公式求积分_数值计算实验9 数值积分实验

    实验9 数值积分实验 成绩 实验类型:●验证性实验  ○综合性实验  ○设计性实验 实验目的:进一步熟练掌握变步长数值积分算法,提高编程能力和解决定积分问题的实践技能. 实验内容:用龙贝格积分算法计算 ...

最新文章

  1. Python最会变魔术的魔术方法,我觉得是它
  2. 非关系型数据库(NoSQL)
  3. java 命令直接执行(运行)jar 包的几种方法【笔记自用】
  4. 遇到个鬼,在WIN08的DELL R710上安装CENTOS 63,无法格式化以前的硬盘分区,安装无法进行下去。...
  5. 写cookies注意事项
  6. Mac系统SequelPro下载介绍和使用方法
  7. python中执行shell命令的几个方法
  8. 数据库:跨数据库,服务器数据迁移
  9. 性能测试之二——性能测试的流程
  10. 【论文复现】使用RNN进行文本分类
  11. linux审计日志清除,Linux登录安全及用户操作审计 ,linux下清理日志脚本
  12. 回文后缀(suffix)
  13. HDOJ--1869--六度分离(用三种算法写的,希望能比较出来他们之间的区别)
  14. 鸟瞰 Java 并发框架
  15. 电阻触摸屏 linux 校准软件,android 电阻单点触摸屏校准
  16. java.nio.channels.NotYetConnectedException: null
  17. 无法直接在IE中打开PDF文件的解决方法
  18. tk.mybatis.mapper.MapperException: 无法获取实体类com.对应的表名
  19. 工作9年的程序员几点感受
  20. 【源码】核磁共振成像的脑部肿瘤检测与分类

热门文章

  1. 第三章 Java的基本程序设计结构
  2. Bootstrap 旋转轮播
  3. ArcGIS API for JavaScript - 将图片设为map的底图
  4. 利用单片机延时播放孤勇者
  5. 中兴通讯服务器r5400,至强5400系列处理器
  6. 微信小程序页面使内容充满整个屏幕(高度、宽度100%),并使内容水平和竖直都居中
  7. 【java】总结java高并发的处理
  8. 西门子mes系统服务器,西门子mes的解决方案.docx
  9. 初识Chrome Performance
  10. 使用过得sql语句展示--会不断更新完善