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

C#编程

开发平台:

Visual C++

  1. //==================================
  2. // f0610.cpp
  3. // 矩形积分
  4. //==================================
  5. #include<iostream>
  6. #include<fstream>
  7. #include<cmath>
  8. using namespace std;
  9. //----------------------------------
  10. double g(double x){
  11.   return 1/x;
  12. }//---------------------------------
  13. double rectangle(double a, double b, double(*f)(double)){
  14.   double w=b-a, sumNew=w*(f(a)+f(b))/2, sumOld=0;
  15.   for(int n=1; abs(sumNew-sumOld)>=1e-4; n*=2){
  16.     sumOld=sumNew;
  17.     sumNew=0;
  18.     for(int i=0; i<n; ++i)
  19.       sumNew += f(a + w*(i+0.5)/n);
  20.     sumNew *= w/n;
  21.   }
  22.   return sumNew;
  23. }//---------------------------------
  24. int main(){
  25.   ifstream in("integral.txt");
  26.   cout<<fixed; cout.precision(3);
  27.   for(double b; in>>b; )
  28.     cout<<rectangle(1,b,g)<<"n";
  29. }//=================================
  30.