📄 龙贝格.cpp
字号:
#include "stdio.h"
#include "math.h"
#include "malloc.h"
#include "iostream.h"
double Func(double x)
{
if(x==0.0000000)
return 1;
else
return(sin(x)/x);
}
double ROMBG(double a,double b,double eps)
{
double l,h,r,s,k,l0,m,n;
int j,q;
double t[11];
l=b-a;
h=l;
t[0]=(Func(a)+Func(b))*l*0.5;
for(q=0;q<=9;q++)
{
r=h;
h*=0.5;
k=h;
s=Func(a+k);
do
{
k+=r;
if(fabs(k)<fabs(l))
s+=Func(a+k);
}while(fabs(k)<fabs(l));
t[q+1]=t[q]*0.5+h*s;
l0=1;
for(j=q;j>=0;j--)
{
l0*=0.25;
m=(t[j+1]-t[j])/(1-l0);
t[j]+=m;
}
}
n=t[0];
m/=n;//cout<<t[0]<<t[1];
if(fabs(m)<eps&&q>3)
{
r=t[0];
return(r);
}
else
return 0;
}
void main()
{
double a,b,eps;
a=0.0;
b=1.0;
eps=0.0000005;
printf("%.10f\n",ROMBG(a,b,eps));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -