Chebyshev多项式的快速(近似)评估


9

有没有一种首选的方法如何在均匀网格上(根据Chebyshev节点处的函数值)对Chebyshev插值多项式进行快速(近似)评估?我的问题是,当插值多项式的次数增加时,插值会变慢。

我想到以下想法:

  • 尝试适应非均匀FFT(NFFT)技术
  • 使用FFT来计算切比雪夫节点上的导数,可能是先进入更精细的(切比雪夫)网格之后。然后使用分段三次插值进行(近似)评估。
  • 使用一些仅在“附近” Chebyshev节点上使用函数值(以及可能的导数)的公式(这与特定的NFFT技术有关)。

看看chebfun!它是一个完整的库,它基于借助Chebyshev多项式的函数表示形式。它是开源的,高度优化的且维护良好的,我想如果存在对多项式进行逐点求值的首选方法,则可以在其中找到它。
1

Answers:


11

您是否考虑过使用重心插值?本文第5节详细介绍了如何针对Chebyshev节点高效地执行此操作

这实际上是对Chebyshev插值的精确评估。如果您正在评估多项式ñ 节点,成本在 Øñ

更新资料

如果您具有插值多项式的Chebyshev系数,另一种选择是使用Clenshaw算法。如果仅在Chebyshev节点上具有函数值,但必须多次评估多项式,则可以使用FFT计算系数。

Clenshaw算法比重心插值算法要快一些,因为它只需要加法和乘法,并且向量化也很好。


目前,我通过针对特定评估点预先计算相对于Chebyshev节点上的函数值的权重,然后针对我必须执行的所有插值来评估此点(很多插值都具有相同的Chebyshev节点和相同的评估点) ,然后移至下一个评估点。
Thomas Klimpel

@ThomasKlimpel:您如何计算权重?如果您正在使用Chebyshev节点[-1个1个],他们只是 ±1个, 要么 ±1个/2在边缘。如果速度真的至关重要,那么我在答复中添加了克伦肖算法。以我的经验,编译代码的速度大约快四倍。
2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.