tingxing.cpp
来自「这是计算方法上的所有算法」· C++ 代码 · 共 46 行
CPP
46 行
#include <stdio.h>
#include <conio.h>
#include <math.h>
#define EPS 1e-6
double f(double x)
{
return 4/(1+x*x);
}//求积函数
double AutoTrap(double (*f)(double),double a,double b,double eps)
//T2k=T2(k-1)/2+(b-a)/2k*@@[a+(2i-1)(b-a)/2k]
{int i,n=1;
double x,lz,h=b-a;
double To,Tn=h/2.0*(f(a)+f(b));//To=T2(k-1)/2;Tn=(b-a)/2k@@[a+(2i-1)(b-a)/2k]
do
{
lz=0.0;//lz=@@[a+(2i-1)(b-a)/2k]
To=Tn;
for (i=0;i<=n-1;i++)
{
x=a+i*h+h/2;//x=a+(2i-1)(b-a)/2k
lz+=f(x);
}
printf("T(%4d)=%8f\n",n,Tn);
Tn=To/2.0+lz*h/2.0;
n*=2;//n=2k
h/=2.0;
}
while (fabs(Tn-To)>EPS);
return Tn;}//精度控制
void main()
{
double s;
s=AutoTrap(f,0.0,1.0,EPS);
getch();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?