📄 main.cpp
字号:
#include <iostream>
#include <stdlib.h>
#include<math.h>
using namespace std;
float fx(float x) //积被函数 f(x)
{ float f;
f=4/(1+pow(x,2));
return(f);
}
int main(int argc, char *argv[])
{
float s,r2,t[200][200],h,a,b,e,fz,fm;
int i,m,k,j;
float tmp;
printf("输入下限:"); scanf("%f",&a);
printf("输入上限:"); scanf("%f",&b);
printf("输入精度 e:"); scanf("%f",&e);
h=b-a;
t[1][0]=h*(fx(a)+fx(b))/2;
printf("%f\n",t[1][0]);
k=1;
while(1)
{ s=0;
tmp=pow(2.0,k-1);
for(i=1;i<=tmp;i++)
s=s+fx(a+(2*i-1)*(b-a)/pow(2.0,k));
t[1][k]=(t[1][k-1]+(b-a)/pow(2.0,(k-1))*s)/2;
printf("%f\t",t[1][k]);
for(i=2;i<=k+1;i++)
{ j=abs(i-k-1);
fz=t[i-1][j+1]-(1/pow(4.0,(i-1)))*t[i-1][j];
fm=1-(1/pow(4.0,(i-1)));
t[i][j]=fz/fm;
printf("%f\t",t[i][j]);
}
printf("\n");
r2=fabs(t[i-1][j]-t[i-2][j+1]);
if(r2<e)
{ printf("积分的近似值是:%f",t[i-1][j]); break; }
k++;
}
system("PAUSE");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -