ch4_9.cpp
资源名称:c.rar [点击查看]
上传用户:puke2000
上传日期:2022-07-25
资源大小:912k
文件大小:1k
源码类别:

C#编程

开发平台:

Visual C++

  1. //*********************
  2. //**    ch4_9.cpp    **
  3. //*********************
  4. #include <iostream.h>
  5. #include <iomanip.h>
  6. #include <math.h>
  7. double f(double x);
  8. void main()
  9. {
  10.   int n=1;     //初值
  11.   double a=0, b=1;
  12.   double h,Tn,T2n,In,I2n;
  13.   const double eps=1e-8;
  14.   h = b-a;
  15.   T2n=I2n=h*(f(a)+f(b))/2;
  16.   In=0;
  17.   while(fabs(I2n-In)>=eps){    //求积分
  18.     Tn=T2n;
  19.     In=I2n;
  20.     double sigma=0.0;
  21.     for(int k=0; k<n; k++){    //求变步长梯形的和部分
  22.       double x=a+(k+0.5)*h;
  23.       sigma+=f(x);
  24.     }
  25.     T2n=(Tn+h*sigma)/2.0;      //变步长梯形
  26.     I2n=(4*T2n-Tn)/3.0;        //辛普生公式
  27.     n*=2;      //划分
  28.     h/=2;
  29.   }
  30.   cout <<"the integral of f(x) from "
  31.        <<a <<" to " <<b <<" is n"
  32.        <<setiosflags(ios::fixed)
  33.        <<setprecision(8)
  34.        <<setw(10) <<I2n <<endl;    //输出结果
  35. }
  36. double f(double x)
  37. {
  38.   return exp(x)/(1+x*x);
  39. }