我对实现快速多极子方法以有效模拟一组斥力粒子的系统感兴趣。我找到了很多关于FMM的参考资料,但似乎都不适合非数学专业人士全面理解算法。你能推荐一个从基础开始的参考资料,清晰地解释了该过程的数学原理,并包含了示范正确实现的伪代码吗?
我并不是FMM方面的专家,但是这篇Java实现和介绍是我找到的最好的资源,可以仔细、慢慢地解释。文章在使用术语之前很好地定义了它们,代码至少作为参考点非常有用。尽管数学知识很快变得复杂,但就是这样 :) 一个行人对快速多极子方法的介绍是第二好的选择。它没有解释工作中FMM实现的具体细节,但是它是基本概念的良好介绍。
我喜欢FMM短期课程。它从一维的FMM开始,然后使用复变量理论进行二维的FMM。然后是疯狂的三维版本,使用球谐函数理论,我猜非数学家可能会觉得很困难。但如果你只需要二维的FMM,那应该没问题。不幸的是,没有提供伪代码。但你真的需要FMM的准确性吗?您可能可以使用Barnes-Hut算法。
在遇到类似问题后,我写了一个完全记录的Python快速多极子方法实现pybbfmm。我还写了一个简短的、无需数学知识的教程mathematics-free tutorial,介绍了该方法的工作原理。我认为它们比我能找到的其他任何演示文稿都更易于理解。(元信息:虽然这实际上是一个链接帖子,但OP明确要求提供链接。我已经添加了我认为缺少的库名称,但除了名称和链接之外,我不知道如何提供这个答案。当然,它并没有比接受的答案更像一个链接帖子。如果这个答案也被删除了,我就放弃了)