我一直在尝试理解快速多极方法,但没有真正做到。
它似乎是最快的主流 N 体模拟算法,我想在一个高效的 javascript 版本中实现它,主要是为了在浏览器中娱乐。
我的数学很弱,但相对而言,我的编程很强大。例如,在这种情况下,我什至不确定“扩展”在数学上意味着什么。
FMM的实现可以简单的用文字来描述吗?还是需要理解数学?
我一直在尝试理解快速多极方法,但没有真正做到。
它似乎是最快的主流 N 体模拟算法,我想在一个高效的 javascript 版本中实现它,主要是为了在浏览器中娱乐。
我的数学很弱,但相对而言,我的编程很强大。例如,在这种情况下,我什至不确定“扩展”在数学上意味着什么。
FMM的实现可以简单的用文字来描述吗?还是需要理解数学?
其实我可能在这里找到了算法的一个很好的解释:https ://github.com/davidson16807/fast-multipole-method
我在这里对快速多极方法进行了图形化的非数学解释。
动画有很大帮助,但用文字来说:如果将快速多极方法称为“递归逼近法”,它就不会那么可怕了。它为您尝试计算的字段构建近似层次结构,并使用大尺度的大近似值和小尺度的小近似值。
名称的“多极”位来自于使用的传统近似选择,即Laurent 级数。洛朗级数是围绕一个“极点”定义的,多重近似产生多个极点!但实际上,近似值的选择并不是整个方案的关键。