数值求积的方法选择

计算科学 正交
2021-11-28 02:35:59

数值求积存在几个方法族。如果我有特定类别的被积函数,我该如何选择理想的方法?

关于被积函数(例如,它是否平滑?是否有奇点?)和计算问题(例如,容错、计算预算),需要问哪些相关问题?

这些问题的答案如何排除或促进各种方法家族?为简单起见,让我们只考虑单维或低维积分。

例如,关于 QUADPACK 的 Wikipedia 文章指出,相当通用的QAGS例程“在每个子区间内使用基于 21 点 Gauss-Kronrod 正交的全局自适应正交,并通过 Peter Wynn 的 epsilon 算法进行加速

这个决定是如何做出的?当知道更多信息时,如何做出类似的决定?

1个回答

首先,你需要问自己一个问题,如果你需要一个全方位的正交例程,它应该把一个被积函数当作一个黑盒子。如果是这样,您只能选择自适应正交,希望自适应能够捕捉被积函数中的“困难”点。这就是皮森斯等人的原因之一。选择用于自适应方案中应用的适度阶数的 Gauss-Kronrod 规则(这种类型的规则允许您使用相同的函数评估来计算积分的近似值和近似误差的估计)(将区间细分为最大误差),直到达到所需的公差。Wynn-epsilon 算法允许提供收敛加速,并且通常在存在端点奇点的情况下有所帮助。

但是,如果您确实知道被积函数的“形式”或“类型”,您可以根据您的需要定制您的方法,这样计算成本就会受到您需要的准确性的限制。所以你需要看看:

积分:

  • 平滑度:是否可以通过正交多项式族中的多项式来近似(很好)(如果是这样,高斯求积会很好)
  • 奇点:积分是否可以拆分为只有端点奇点的积分(如果是这样,IMT 规则或双指数求积在每个子区间上都很好)
  • 评估的计算成本?
  • 可以计算被积函数吗?还是只有有限的逐点数据可用?
  • 高度振荡的被积函数:寻找 Levin 类型的方法。

在处理奇点时,通常更喜欢它们位于积分的端点(参见 IMT,双指数)。如果不是这种情况,可以求助于 Clenshaw-Curtis 积分,您可以在其中捕获权重函数中的奇点。一个典型的定义形式的奇点,如|xc|α并建立作为函数的正交权重的表达式cα.

积分区间:有限、半无限或无限。在半无限或无限区间的情况下,是否可以通过变量变换将它们简化为有限区间?如果不是,则可以在高斯求积法中使用拉盖尔或埃尔米特多项式。

一般来说,我没有关于正交实际流程图的参考,但 QUADPACK 书(不是 Netlib 手册页,而是真正的书)有一个流程图,可以根据您要评估的积分选择适当的例程。这本书还描述了皮森斯等人在算法中所做的选择。对于不同的例程。

对于低维积分,通常使用嵌套的一维求积。在二维积分(立方)的特殊情况下,积分域的不同情况存在积分规则。R. Cools 在他的容积公式百科全书中收集了大量规则,是Cubpack的主要作者。对于高维积分,通常采用蒙特卡罗类型的方法。但是,通常需要大量的被积函数评估才能获得合理的准确性。对于低维积分,求积/容积/嵌套求积等近似方法的性能通常优于这些随机方法。

一般有趣的参考:

  1. Quadpack,皮森斯,罗伯特;德唐克-卡彭加,伊莉丝;Überhuber,克里斯托弗 W.;大卫·卡哈纳 (1983)。QUADPACK:用于自动集成的子程序包。施普林格出版社。国际标准书号 978-3-540-12553-2
  2. 数值积分方法:第二版,Ph. Davis 和 Ph. Rabinowitz,2007,Dover 数学书籍,ISBN 978-0486453392