我有兴趣实现快速多极方法来有效地模拟排斥粒子系统。
我发现了大量讨论FMM的参考文献,但对于想要完全理解算法的非数学家来说,似乎没有一篇是非常容易接近的。
你能推荐一个简单的参考资料吗?它清楚地解释了这个过程背后的数学原理,并包括举例说明正确实现的伪代码?
我绝不是FMM方面的专家,但这个java实现和介绍是迄今为止我发现的最好的来源,可以仔细而缓慢地解释它。本文擅长在使用术语之前定义术语,代码至少可以作为参考点。数学仍然很快变得棘手,但它就是这样:)
一个行人介绍快速多极方法是紧随其后的。它没有解释一个有效的FMM实现的实际细节,但它很好地介绍了基本思想。
我喜欢FMM的短期课程。从一维的FMM开始,用复变理论做二维的FMM。还有疯狂的3D版本,它使用了球面谐波函数的理论,我想这对非数学家来说可能非常困难。但如果你只需要二维的FMM,你应该可以。
不幸的是,这里没有给出伪代码。
但是你真的需要FMM的准确性吗?。你可能对Barnes Hut的算法很满意
在遇到与您类似的问题后,我最终编写了一个完整的Python快速多极方法实现pybbfmm。我还写了一篇关于该方法如何工作的简短的无数学教程。加在一起,我认为它们比我能找到的任何其他演示都更容易理解。
(meta:虽然这实际上是一个链接帖,但OP明确要求提供链接。我已经添加了我认为上一个链接中缺少的内容-库的名称-但除了名称和链接之外,我不知道该如何提供这个答案。当然,它感觉不到比公认的答案更像链接帖。如果这个也被删除,我将放弃)