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 + -
显示快捷键?