复化.cpp

来自「数值分析中的复化求积公式实现的源代码」· C++ 代码 · 共 32 行

CPP
32
字号
#include <stdio.h>
#include <math.h>
#define E 1e-6
#define a 0                          //积分下限a
#define b 3.141592653589793238                          //积分上限b
#define f(x) (exp(x)*cos(x))           //被积函数f(x)
int main()
{
    int i,n;
    double h,t0,t,g;
    n=1;                             //赋初值
    h=(double)(b-a)/2;
    t=h*(f(a)+f(b));
    do                              
    {
       t0=t;            
       g=0;
       for (i=1;i<=n;i++)
           g+=f((a+(2*i-1)*h));
       t=(t0/2)+(h*g);                //复化梯形公式
       n*=2;
       h/=2;
    }
    while (fabs(t-t0)>E); //自定义误差限e
	printf("近似值为:\n");
    printf("%10.8lf\n",t);  //输出积分的近似值
	n=n*2;
	printf("等分区间为:\n");
	printf("%d\n",n);
   
return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?