栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

用C语言积分的资料收集

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用C语言积分的资料收集

用C语言积分的资料收集
  • C语言积分
    • Trapezoidal Rule
  • Simpson's Rule
  • 参考文档

C语言积分

标准C语言的积分好像很难,至少收集资料前是这么想的,当收集完资料,看到各位前辈的介绍,又重拾信心,梳理记录一下,以备后用吧。翻了翻参考文献,打底利用数值计算的方法都是利用微积分的思维,小图像累加求和来做的。实用的算法分为梯形算法(Trapezoidal Rule)和辛普森算法(Simpson’s Rule),那么区别和性能呢?本文的图形都来自文献Integration

Trapezoidal Rule

相对于上图的样条矩形,肉眼可见的误差很大,真实面积更大,如何减小误差,直接连接插值点,矩形就变成梯形了
很明显,误差小了,计算公式 S = δ x 2 ( y 0 + y 1 + y 1 + y 2 . . . + y 4 + y 5 ) S=frac{delta x}{2}(y_0+y_1+y_1+y_2...+y_4+y_5) S=2δx​(y0​+y1​+y1​+y2​...+y4​+y5​)
引申一下,假设这个函数为 f ( x ) f(x) f(x)积分范围 a − b a-b a−b,把这个积分面积分成 n n n份,采样点 n + 1 n+1 n+1。则积分(面积)可以表达为: ∫ a b f ( x ) = b − a 2 ∗ n ( f ( a ) + 2 ∗ ∑ k = 1 n − 1 f ( x k ) + f ( b ) ) int_a^b f(x)=frac{b-a}{2*n}(f(a)+2*sum_{k=1}^{n-1}f(x_k)+f(b)) ∫ab​f(x)=2∗nb−a​(f(a)+2∗k=1∑n−1​f(xk​)+f(b))

Simpson’s Rule

这个规则就是认为利用抛物线来拟合边界会带来更好的结果,

∫ a b f ( x ) = δ x 3 ( y 0 + 4 y 1 + 2 y 2 + 4 y 3 + 2 y 4 + 4 y 5 + y 6 ) int_a^b f(x)=frac{delta x}{3}(y_0+4y_1+2y_2+4y_3+2y_4+4y_5+y_6) ∫ab​f(x)=3δx​(y0​+4y1​+2y2​+4y3​+2y4​+4y5​+y6​)
这个规则要求 n n n必须是偶数,一般公式为: ∫ a b f ( x ) = δ x 3 ( y 0 + 2 ∑ y e v e n + 4 ∑ y o l d + y n ) int_a^b f(x)=frac{delta x}{3}(y_0+2sum y_{even}+4sum y_{old}+y_n) ∫ab​f(x)=3δx​(y0​+2∑yeven​+4∑yold​+yn​)
看到这个公式有点懵,不知从哪里来的,那先了解一下抛物线(parabolas)的面积公式,有幸搜到一篇博文可视化微积分:一种全新的视野解释抛物线的面积,大致上就是说围成抛物线的面积等于外围矩形面积的 1 / 3 o r 2 / 3 1/3 or 2/3 1/3or2/3,那要看怎么看了,上面就是把每条分成矩形和一个抛物线形,两个面积累加,上式采用 1 / 3   s t e p t o   2 / 3 1/3 step to 2/3 1/3 stepto 2/3 的方法,得到了这个规则公式,推导上图片吧,不码公式了。
这就提供了简单的积分运算的数值方法。可以利用c最基本的库来实现积分了。当然还是有误差的,参考文档里有几个现成的实例。

参考文档

GNU Scientific Library
Numerical Integration Using Trapezoidal Method C Program
C library for Numerical Integration
Numerical integration
Numerical Recipes:The Art of Scientific Computing
Simpson’s Rule (辛普森法则)
Integration
可视化微积分:一种全新的视野解释抛物线的面积

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/384886.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号