龙贝格方法求积分C程序
程序代码如下:
#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为精度要求。
源程序下载。
版权信息:本文来自老杨个人网站,作者老杨,原文地址,转载请注明出处。
如果喜欢本站,敬请订阅:老杨个人网站。谢谢惠顾!
标签:





有错
回复Ta
是吗?在哪里,我写的比较匆忙,所以可能没有仔细检查,如果存在错误还请楼上指出,谢谢!
回复Ta