重要的算法C语言实现源代码4
4.龙贝格求积公式,求解定积分C/C++ code
#include<stdio.h>
#include<math.h>
#define f(x) (sin(x)/x)
#define N 20
#define MAX 20
#define a 2
#define b 4
#define e 0.00001
float LBG(float p,float q,int n)
{ int i;
float sum=0,h=(q-p)/n;
for (i=1;i<n;i++)
sum+=f(p+i*h);
sum+=(f(p)+f(q))/2;
return(h*sum);
}
void main()
{ int i;
int n=N,m=0;
float T;
T=LBG(a,b,n);
n*=2;
for(m=1;m<MAX;m++)
{ for(i=0;i<m;i++)
T=T;
T=LBG(a,b,n);
n*=2;
for(i=1;i<=m;i++)
T=T+(T-T)/(pow(2,2*m)-1);
if((T<T+e)&&(T>T-e))
{ printf("Answer=%f\n",T); getch();
return ;
}
}
}
关于本帖内容欢迎大家踊跃讨论,与在下交流!
页:
[1]