数值作业:龙贝格算法计算积分C语言实现

数值作业:龙贝格算法计算积分C语言实现

根据Romberg算法计算定积分,和变步长的Simpson算法的输入都一样.算法基本分析:输入a,b(积分上下限),n为积分区间等分数,eps为计算精度,我这里1e-7,代表0乘以10的负7次方.本题目取的例子为数值书137面的例子2,f(x)= sin(x)/x,下面给出代码:

/********************************************

> File Name: Dragon.c

> Author:chendiyang

> School:WUST_CST_1501班

> Myblog:www.chendsir.com

> Mail:[email protected]

> Created Time: 2017年05月6日 星期六 12时33分10秒

************************************************************************/

#include

#include

#define N 20

#define MAX 10 //数组存的最大行数

#define a 0.0000001 //积分下限

#define b 1.0 //积分上限

#define eps 1e-7 //精度

double f(double x)//所求积分公式

{

return sin(x) / x;

}

double computeT(double aa, double bb, long int n)//复化梯形公式

{

int i;

double sum, h = (bb - aa) / n;

for (i = 1; i < n; i++)

sum += f(aa + i * h);

sum += (f(aa) + f(bb)) / 2;

return (h * sum);

}

double f2(double x)

{

return x*x;

}

int main()

{

int i;

long int n = N,m = 0;

double T[MAX + 1][2];

T[0][1]=computeT(a,b,n);

n*= 2;

for (m = 1; m < MAX; m++)

{

for (i = 0; i < m; i++)

{

T[i][0] = T[i][1];

}

T[0][1]=computeT(a,b,n);

n *= 2;

for (i = 1; i <= m; i++) //T的m(h)

T[i][1] = T[i - 1][1] + (T[i - 1][1] - T[i - 1][0]) / (pow(2, 2 * m) - 1);

if ((T[m - 1][1] < T[m][1] + eps) && (T[m - 1][1] > T[m][1] - eps))

{

printf("计算的数为:%lf\n", T[m][1]); //输出

return 0;

}

}

printf("此题没有解...\n");

return 0;

}

运行结果:

可见计算的结果是正确的,然而中间因为一个小小的中文空格替换问题,调试了整整一小时,等发现错在哪之后,才拍大腿,恍然大悟,脑子一直在想我TM到底错在哪了.虽然烦,以前一位学长说程序员们基本都是吾日三省吾身的,每当Debug的时候,感触最深..

纸上得来终觉浅,绝知此事需躬行.

数值作业:龙贝格算法计算积分C语言实现相关教程

c语言龙贝格积分法实验报告,数值作业:龙贝格算法计算积分C语言实现相关推荐

  1. 数值计算方法(三)——变步长梯形法与龙贝格算法

    变步长梯形算法 提出背景: 复化求积公式虽然能提高精度,但需要给出步长,步长精度太大则精度低,步长太小则计算量大,难以找到一个合适的步长(划分成的小区间的个数) 算法描述: 1.对所有已存在的子区间进 ...

  2. 变步长梯形法与龙贝格算法

    文章目录 1. 变步长梯形法 算法描述 流程图 代码实现 2. 龙贝格算法 算法描述 例子 代码实现 1. 变步长梯形法 提出背景: 复化求积公式虽然能提高精度,但需要给出步长,步长精度太大则精度低, ...

  3. 复化梯形公式求椭圆周长C语言,C语言编程解线性,非线性方程,龙贝格算法.docx

    C语言编程解线性,非线性方程,龙贝格算法 课程设计课程名称:数值计算B 设计题目:数值计算B课程设计学号:姓名:完成时间: 2015年10月27日题目一:非线性方程求根一.题目假设人口随时间和当时人口 ...

  4. c语言编程龙贝格积分法实验报告,龙贝格积分实验报告.docx

    龙贝格积分实验报告 二.Romberg积分法1.变步长Romberg积分法的原理复化求积方法对于提高精度是行之有效的方法,但复化公式的一个主要缺点在于要事先估计出部长.若步长过大,则精度难于保证:若步 ...

  5. 龙贝格方法c语言,龙贝格算法

    #include #include #include #define N 1000//最大加速次数 #define MAX 10     //数组存的最大行数(宏定义) #define a 0.000 ...

  6. 【数值分析实验MATLAB】数值积分:梯形公式、辛普森公式、复化梯形公式、复化辛普森公式、龙贝格算法、自适应求积方法

    (1)Matlab代码: f1: if x==0y=1; else%y=exp(-x^2);y=(sin(x))/x; end 梯形公式: a=0; b=1; tx=(b-a)/2*(f1(a)+f1 ...

  7. matlab 龙贝格法,matlab龙贝格法

    Tm 3.2.2 龙贝格算法计算步骤 1.输入 MATLAB 程序 functi... 3.2.2 龙贝格算法计算步骤 1.输入 MATLAB 程序 function[... 3.2.2 龙贝格算法计 ...

  8. 数值计算大作业:数值积分(梯形、辛普森与龙贝格方法在Matlab实现)

    作为研究生的入门课,数值计算的大作业算是所有研究生开学的重要编程作业. 针对数值积分的编程,我把梯形.辛普森与龙贝格方法在MATLAB中编写的程序放在文章最后了,需要的同学自取. PS:附录中的程序并 ...

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

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

最新文章

  1. (原創) 如何正確的使用迴圈(使用for_each)? (C/C++) (STL) (template)
  2. 关于pycharm右键只能选择run Unit不能直接run的解决方法
  3. 一对多查询,合并成一条数据
  4. java cookie的有效期_Java Web cookie的有效期
  5. Hyhyhy – 专业的 HTML5 演示文稿工具
  6. 【Cloud Foundry 应用开发大赛】“八卦街”图片采集应用
  7. C语言课后习题(51)
  8. runtimeerror怎么解决python_如何解决这个python错误? RuntimeError:字典在迭代期间改变了大小...
  9. Shell脚本:Linux Shell脚本学习指南(超详细)
  10. window下使用tail -f查看tomcat日志
  11. 52单片机C语言如何用间接寻址,单片机要如何寻址?
  12. labwindows panel设置透明度方法
  13. 突发!图森未来CEO侯晓迪被罢免,公司疑遭SEC、FBI联手调查,市值一夜砍半
  14. python是跨平台语言吗_python可以跨平台么
  15. win10 运行debussy不能打开波形窗口问题
  16. 数字人民币红包体验如何?
  17. open judge 1.6.3
  18. SSH (安全shell 协议)
  19. 【转载】HBA卡知识介绍
  20. suse linux 单用户,如何在 SUSE 12 Linux 中进入单用户模式?

热门文章

  1. 云+X案例展 | 民生类:智领云数据中台为“健康武汉”增砖添瓦
  2. 跳槽季:跳和不跳之外的第三选择
  3. 与Serverless 的第一次亲密接触
  4. 基于Mesos/Docker构建数据处理平台
  5. Docker Harbor 2.3.4 集群 双主复制高可用镜像仓库
  6. RuoYi-Cloud 部署篇_03(linux环境 Mysql+nginx版本)
  7. java执行linux脚本 并返回其执行结果
  8. 第三篇:Spring Boot整合Servlet
  9. tensorflow玻尔兹曼机_资源 | 10种深度学习算法的TensorFlow实现
  10. c++ 编写函数返回两个值最小值_结合实例来分析SQL的窗口函数