失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【C语言基础】利用复合梯形求积公式计算定积分

【C语言基础】利用复合梯形求积公式计算定积分

时间:2021-06-03 14:48:00

相关推荐

【C语言基础】利用复合梯形求积公式计算定积分

【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∫b​f(x)dx≈2h​[f(a)+f(b)+2i=1∑n−1​f(xi​)]

其中:

n 为等分区间数
h=(b-a)/2 (积分步长)

C语言实现算法

以下面积分为例:

∫011+e−xsin4xdx\int\limits_0^11+e^-xsin4xdx 0∫1​1+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语言基础】利用复合梯形求积公式计算定积分》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。