📄 龙贝格累加算法.cpp
字号:
#include <iostream.h>
#include <math.h>
double f(double);
void main()
{
double a,b,e,r1,s1,c1,r2,c2,T2,s2;
int k;
cout<<"请输入a的值"<<endl;
cin>>a;
cout<<"请输入b的值"<<endl;
cin>>b;
cout<<"请输入e的值"<<endl;
cin>>e;
double h=b-a;
double T1=h/2*(f(a)+f(b));
k=1;
while (k>=1)
{
double s=0;
double x=a+h/2;
while(x<b)
{
s=s+f(x);
x=x+h;
}
T2=T1/2+h/2*s;
s2=T2+(T2-T1)/3;
//double s1;
while (k==1)
{
k=k+1;
h=h/2;
T1=T2;
s1=s2;
}
c2=s2+(s2-s1)/15;
// double c1;
while (k==2)
{
c1=c2;
k=k+1;
h=h/2;
T1=T2;
s1=s2;
}
r2=c2+(c2-c1)/63;
//double r1;
while(k==3)
{ r1=r2;
c1=c2;
k=k+1;
h=h/2;
T1=T2;
s1=s2;
}
if((k>4)&&(r2-r1)*(r2-r1)<e*e)
{ cout<<"最终结果"<<r1;
cout<<"最终结果"<<r2;
break;
}
else
{
r1=r2;
c1=c2;
k=k+1;
h=h/2;
T1=T2;
s1=s2;
}
}
}
double f( double x)
{return (4/(1+x*x));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -