原创 龙贝格积分

2008-4-13 22:52 2043 1 1 分类: 工业电子
/********************************************************************
* 用龙贝格法计算函数f(x)从a到b的积分值
* 输入: f--函数f(x)的指针
*       a--积分下限
*       b--积分上限
*       eps--计算精度
*       max_it--最大迭代次数
* 输出: 返回值为f(x)从a点到b点的积分值
*******************************************************************/
double romberg(double(*f)(double),double a,double b,
                          double eps,int max_it)
{
double *t,h;
int i,m,k;

if(!(t=(double *)malloc(max_it*sizeof(double)+1)))
return(ERROR_CODE);
h=b-a;
t[1]=h*((*f)(a)+(*f)(b))/2.0;
printf("%18.10e\n",t[1]);
for(k=2;k<max_it+1;k++)
{
double s,sm;
h*=0.5;
s=0.0;
for(i=0;i<pow(2,k-2);i++)
s+=(*f)(a+(2*i+1)*h);
sm=t[1];
t[1]=0.5*t[1]+h*s;
for(m=2;m<k+1;m++)
{
s=t[m];
t[m]=t[m-1]+(t[m-1]-sm)/(pow(4,m-1)-1);
if(m<k)
sm=s;
}
for(m=1;m<k+1;m++)
printf("%18.10e",t[m]);
printf("\n");
if(fabs(t[k]-sm)<eps)
{
sm=t[k];
free(t);
return(sm);
}
}
return(ERROR_CODE);
}

文章评论0条评论)

登录后参与讨论
相关推荐阅读
208servo_586623692 2013-11-17 16:56
基于Matlab的IIR数字滤波器设计方法比较及应用
  0 引言   数字滤波器(Digital Filter)是指输入、输出都是离散时间信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。数字滤波器在数字信号处理中起着...
208servo_586623692 2012-06-09 08:04
评论:@信号链杂谈's Blog 博客中提到的“信号链基础知识# 63:利用 SPICE 设计 TEC 温度环路 ...”
TEC温度环路PID控制...
208servo_586623692 2011-02-01 23:17
用DSP实现增量式光电编码器的细分
用DSP实现增量式光电编码器的细分 技术分类: 微处理器与DSP  | 2011-01-04 21ic   1 引言   目前,各类伺服驱动器及其应用中广泛采用光栅装置作为速度测量、位置测量的敏感元...
208servo_586623692 2011-02-01 23:16
基于MSP430F149单片机的光电编码器位置检测系统设计
基于MSP430F149单片机的光电编码器位置检测系统设计 技术分类: 测试与测量  | 2011-01-31 微计算机信息 李红果   在实际的工业位置控制领域中,为了提高控制精度,准确地对控制对...
208servo_586623692 2011-02-01 23:11
业界首款可直接安装在电机上的定制化电机控制模块
业界首款可直接安装在电机上的定制化电机控制模块 技术分类: 工业电子  | 2010-12-03 : EDN China    智能功率器件及解决方案供应商意法半导体发布业界首款整合工业级以太网接口...
208servo_586623692 2011-02-01 23:05
MEMS惯性传感器优势解析THELMA制程和低成本封装方法
MEMS惯性传感器优势解析:THELMA制程和低成本封装方法 技术分类: 模拟设计  | 2010-11-29 意法半导体 Benedetto Vigna   意法半导体公司推出一系列惯性传感器,极...
我要评论
0
1
1
2
3
4
5
6
7
8
9
0
关闭 热点推荐上一条 /2 下一条