自适应梯形规则和优先级队列实现的说明

问题描述

关于自适应梯形细分(请参见thisthis),我需要解决一个问题,其中评估f(x)会花费很多时间,因此我需要这样做最少的次数。

在SO上搜索,我找到了这个答案:https://stackoverflow.com/a/29837372/261010

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

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

解决方法

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...