用C语言编程:龙贝格-数值积分
班级: 信科 学号: ****** 姓名: 成绩数值分析实验报告
实验3 数值积分
3.1 实验目的
通过本实验理解数值积分与微分的基本原理。掌握数值积分中常见的复合求积公式的编程实现。
掌握龙贝格算法的基本思路和迭代步骤;
培养编程与上机调试能力。
3.2 算法描述
3.2.1 龙贝格算法基本思路
先算出他T0(0),从而计算 T0(1)
以此类推,在判断| Tn(0)- Tn-1(0)|
3.2.2 龙贝格算法计算步骤
步骤1:输入区间端点,精度控制值,循环次数,定义函数,取,
步骤2:for to
步骤3:数据积分近似值。
利用Romberg方法计算函数
3.4 实验步骤
3.4.1 代码
#include"iostream.h"
#include"math.h"
#define e 0.00000000000001
double f(double x)
{
double y;
if (x==0)
{
return y=1.0;
}
else y=sin(x)/x;
return y;
}
void romberg(double a,double b)
{
int n=1,k=0;
double h,T2,S2=0,C2=0,R2=0,T1,C1,S1,R1;
h=(b-a)/2;
T2=h*(f(a)+f(b));
while (fabs((R2-R1))>e)
{
R1=R2;
T1=T2;
S1=S2;
C1=C2;
double sum=0;
int i;
for(i=1;i<=n;i++)
{
sum=sum+f(a+(2*i-1)*h);
}
T2=T1/2+sum*h;
S2=(4*T2-T1)/3;
C2=(16*S2-S1)/15;
R2=(64*C2-C1)/63;
n=n*2;
k++;
h=h/2;
}
cout<
}
void main()
{
double a,b;
cout<
cin>>a>>b;
cout<
cout<
cout<
cout<
romberg(a,b);
}
3.4.2 实验结果
3.5 实验体会
*************************************************************************************************************************************