【C语言基础】利用复合梯形求积公式计算定积分
一、复合梯形求积公式
这是数值分析中一种求解定积分的近似方法。适用于被积函数的原函数不能用初等函数表示的情况。
基本思路
将被积函数 f(x)与x轴围成的区域分成n个梯形,把n个梯形面积求和得到积分的近似值。若精度不满足需要,则可以将每个区间再等分一次,得到2n+1个等分区间,然后再求和,直到精度满足需要。
公式
∫abf(x)dx≈h2[f(a)+f(b)+2∑i=1n−1f(xi)]\int\limits_a^b f(x)dx \approx \frac{h}{2}[f(a)+f(b)+2\sum_{i=1}^{n-1} f(x_i)] a∫bf(x)dx≈2h[f(a)+f(b)+2i=1∑n−1f(xi)]
其中:
n 为等分区间数
h=(b-a)/2 (积分步长)
C语言实现算法
以下面积分为例:
∫011+e−xsin4xdx\int\limits_0^11+e^-xsin4xdx 0∫11+e−xsin4xdx
首先写出计算被积函数值的函数
double f(double x){return 1 + exp(-x)*sin(4x);}
然后写出求积分近似解的表达式
double caculate(double a,double b){double y1,y2,h;int n=1,i;h = a-b;y1 = h*(f(a)+f(b))/2;do{y2 = y1;n = n*2;h = (a-b)/n;y1 = f(a)+f(b);for(i=1;i<n:i++)y1 = y1 + f(a + i*h);y1 = h*y1/2;}while(fabs(y2-y1)>1.0e-5));return y2;}
其中frab()是用来计算绝对值的函数
如果觉得《【C语言基础】利用复合梯形求积公式计算定积分》对你有帮助,请点赞、收藏,并留下你的观点哦!