【发布时间】:2012-04-10 12:08:21
【问题描述】:
我正在寻找与 matlab 的数值积分。我知道matlab中有一个trapz函数,但是精度不够好。通过在线搜索,我发现那里有一个 quad 函数,它似乎只接受符号表达式作为输入。我的数据都是离散的和一维的。这是在我的数据上使用 quad 的任何方式吗?谢谢。
【问题讨论】:
-
quad()是辛普森法则的一种实现,它是高中数学。有什么阻止你自己实施辛普森的规则吗? -
是否只使用辛普森法则,我认为是自适应辛普森正交。但无论如何,我不知道为什么,quad 比我的实现快。我有很多数据要整合,正在寻找更快的方法。
-
我的数值方法课程已经有几年了,但是 IIRC 常规辛普森规则和自适应类型之间的唯一区别是自适应辛普森规则应用了采样点的可变间距。由于您没有集成符号表达式,因此您无法更改采样间隔 - 您已经拥有数据并且无法在其之间插入更多点。因此,常规的辛普森规则将尽可能好。
-
关于速度:您是否考虑过使用新版本 MATLAB 中提供的并行执行工具?并行 for 循环
parfor非常易于使用,并且会将您的 CPU 负载分散到尽可能多的内核(或执行节点)上。
标签: matlab integration numerical