Barnes-Hut算法是一种用于实现N体问题(n-body)模拟的近似算法,该算法由Josh Barnes 和 Piet Hut在1986年提出(可以参加文献【3】)。N体问题是指找出已知初始位置、速度和质量的多个物体在经典力学情况下的后续运动。庞加莱(Henri Poincaré)在研究N体问题时,发现了混沌现象。
欢迎关注白马负金羁的博客 http://blog.csdn.net/baimafujinji,为保证公式、图表得以正确显示,强烈建议你从该地址上查看原版博文。本博客主要关注方向包括:数字图像处理、算法设计与分析、数据结构、机器学习、数据挖掘、统计分析方法、自然语言处理。
算法介绍
因为N体问题是一种混沌现象,物体未来的运动状态是没有规律可言的,所以N体模拟只能采用Brute Force的策略。一种提升N体问题模拟算法的速度,一种非常重要的思想就是把相互接近的一组物体近似看成单独的一个物体。对于一组距离足够远的物体,我们可以将它的万有引力作用近似看成是其质心的作用。一组物体的质心是这种物体经过质量加权后的平均位置。更正式地说,如果两个物体的位置分别是(