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