📄 变步长辛普生.cpp
字号:
#include <iostream.h>
#include <math.h>
double f (double x)
{
double y;
if(x==0)
y=1;
else
y=sin(x)/x;
return y;
/*double y;
y=3*x*x*x+2*x*x-5*x+1;
return y;*/
}
void main()
{
int n;
double a,b,g,p,q,h,t,e;
double s1,s2;
cout<<"请输入积分上下限a,b和误差限e的值"<<endl;
cin>>a>>b>>n;
h=b-a;
p=f(b)+f(a);
s2=0.5*p*h;
t=0.0;
for(n=1;n<=1000;)
{
s1=s2;
h=0.5*h;
g=0.0;
for(q=a+h;q<b-0.5*h;q+=2*h)
g=g+f(q);
s2=(p+4*g+2*t)*h/3;
t=t+g;
n=n+n;
if(fabs(s1-s2)<e)
break;
}
cout<<s2<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -