我正在编写一个用carnot引擎建模的程序,我想计算完成的工作,我需要使用集成。我一直在谷歌四处寻找,并没有找到我想要的,有任何建议吗?
答案 0 :(得分:6)
Apache Commons Math包含用于集成的现成实现等等。
如果你想自己做的话,Java Number Cruncher是一本好书。
答案 1 :(得分:3)
看看Didier H Bessette的面向对象的数值方法实现。
根据您的需要,您可以使用各种方程式。
答案 2 :(得分:3)
查看numerical integration。一般的方法是在积分区间内的不同点处对被积函数进行采样,然后用样本的加权和来近似积分 - 想想Riemann和。有许多不同的求积法则,不同的采样分布和加权函数最适合不同类型的被积函数。
大多数均匀宽度正交规则(例如中点规则)非常简单,不需要花费太多工作来编码,但可能需要太多的样本才能获得可接受的精度。可变宽度采样规则(如Gauss-Hermite)要复杂得多,但假设被积函数足够平滑,则在相同精度水平下需要的样本要少得多。您必须阅读各种规则并找出最适合您需求的规则。
我推荐“数字食谱”一书,它涵盖了数值整合方法(以及几乎科学计算中的其他主题)。
答案 3 :(得分:3)
您必须使用外部库,例如this one或this other one。你不能只用原生方法做到这一点(好吧,除非你自己实现集成算法,就像其他答案建议的那样,我认为这不是你想要的 - 否则你不会在这里问: - )