首页 > 解决方案 > 自适应梯形规则及优先队列实现的说明

问题描述

关于自适应梯形细分(参见thisthis),我需要解决评估f(x)需要大量时间的问题,因此我需要尽可能少地执行此操作。

搜索所以我找到了这个答案:https ://stackoverflow.com/a/29837372/261010

更高级的代码不是单独考虑每个子区间中的误差,而是计算所有子区间的总误差并进行细化,直到总误差低于所需阈值。根据对总误差的贡献选择子区间进行细化,首先细化较大的误差。通常,优先级队列用于快速选择子区间进行细化。

这到底是什么意思?在这种情况下,优先级队列有什么帮助?有多少个子区间可以被认为“更大”?

标签: algorithmrecursionnumerical-methodsnumerical-integration

解决方案


优先级队列不用于计算每个间隔中的错误。相反,它用于跟踪当前哪个区间的误差最大,因此算法可以对其进行细化。这种具有优先级队列的模式用于许多所谓的“贪婪”算法,例如 Dijkstra 搜索和 Prim 算法。


推荐阅读