c语言积分函数_积分近似计算之梯形公式

对于积分区间[a, b],若

9878a7c29e40e88fb3a5f0749e817fb3.png

则成立

28ac927e99be7a417890edefac5449f7.png

梯形公式

如下图所示,被积分函数f(x)在区间[a, b]的积分值约为各个小梯形的面积之和,而且分割数n越大则近似误差越小。

d79963b7cc79a968f9f4f498b9699e5a.png

通过直线逼近实际曲线

edaa60c699cd79aebd5c05954d28bec9.png

梯形公式

C语言程序实现梯形公式计算积分

  • 计算积分
95654b9bcea933bda4f53b3fb30be57f.png
  • 代码
//trapez.c#include #include /*函数定义*/double f(double x){ return (1.0-x)*exp(-1*x);}/*梯形公式计算积分*/double trapez( double a, double b, int n){ double h = (b -a) / n; double s = 0.0; double x; int i; s = ((f(a) + f(b)) / 2) * h; for( i = 1; i < n; i++ ) { x = a + h * i; s += f(x) * h; } return s;}int main(void){ //积分区间[a, b] double a = -1.0, b = 1.0; //区间分割数 int N[5]={10,20,30,50,100}; int i = 0; for( i = 0; i < 5; i++ ) printf("[%3d等分]积分近似值: I = %.5lf", N[i], trapez(a, b, N[i])); return 0;}
  • 编译・执行
$ gcc -lm -o trapez trapez.c$ ./trapez[ 10等分]积分近似值: I = 3.11209[ 20等分]积分近似值: I = 3.09265[ 30等分]积分近似值: I = 3.08904[ 50等分]积分近似值: I = 3.08720[100等分]积分近似值: I = 3.08642
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值