程序代码如下:
#include "math.h"
#include "stdio.h"
double f(double x)
{
double y;
y = sin(x)/x;
return y;
}
int main()
{
double delta;
double a;
double b;
double t1;
double t2;
double h;
int flag;
delta=0.000001;
a=0;b=1;h=b-a;t1=h/2*(1+f(b));flag=1;
do
{
double s;
double x;
if(flag)
{flag=0;}else{
h=h/2;
t1=t2;
}
s=0;
x = a+h/2;
do
{
s=s+f(x);
x=x+h;
}while(x
t2=t1/2+h/2*s;
}while(fabs(t2-t1)>delta);
printf("%f",t2);
}
double f(double x)
{
double y;
y = sin(x)/x;
return y;
}
int main()
{
double delta;
double a;
double b;
double t1;
double t2;
double h;
int flag;
delta=0.000001;
a=0;b=1;h=b-a;t1=h/2*(1+f(b));flag=1;
do
{
double s;
double x;
if(flag)
{flag=0;}else{
h=h/2;
t1=t2;
}
s=0;
x = a+h/2;
do
{
s=s+f(x);
x=x+h;
}while(x
t2=t1/2+h/2*s;
}while(fabs(t2-t1)>delta);
printf("%f",t2);
}
说明:该程序完成使用龙贝格方法求sin(x)/x在0到1区间的积分求解。其中f(x)函数为积分函数,变量delta为精度要求。
源程序下载。
是吗?在哪里,我写的比较匆忙,所以可能没有仔细检查,如果存在错误还请楼上指出,谢谢!
有错