⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 研究生期间上《数值计算方法》课的作业
💻 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 + -