2011-08-19 39 views
3

我要寻找有希望存在,那里的算法,但也许我还没有找到合适的条款来搜索...算法松紧带的松弛速度快

我有一种“松紧带“在三维空间中,乐队固定在起点和终点。对于空间中的每一点,我都可以计算出一个作用于乐队的“外力”。 “内力”就像弹簧一样(切向力)。我正在寻找内部(收缩)力量和外部(分散力量)力量之间的平衡条件。问题是外力无法以封闭的形式提供(但它们是稳定的)。

目前我已经解决了这个问题,即用一些等距点对带进行初始猜测,计算每个采样点的力,将力点移向合力的方向并重复,直到没有发生实质性的移动了。

但是,我想知道是否有更有效的解决方案呢?什么可能是一个很好的术语来搜索关于这个主题的出版物?

感谢您的任何提示!

+0

physics.stackexchange.com可能是一个很好的地方获取更多信息。 –

+0

@Preet Sangha-我认为这个问题适用于SO,因为它具体涉及物理模拟算法,尽管我明白你的观点。 – templatetypedef

回答

1

思路的出发点:

  • 你可能要考虑一个多尺度算法,沿multigrid线。粗略的想法是,“粗粒”弹性带可以快速放松,然后用作更准确解决方案的近似解决方案。当然有更多的细节。

  • 如果弹性带中的连杆之间的弹簧在位移中具有力线性,那么您几乎可以将该问题设置为机械平衡(零力)的矩阵方程:(Coupling matrix) * (Displacement vector) = 0。位移向量中的元素i表示节点i和i + 1之间的位移。当您在弹性带的起点和终点上添加约束时,它会变得更加复杂。考虑在由约束限制的向量搜索空间上使用conjugate gradient method。另一种可能性是查看linear programming文献。

  • 如果弹簧是非线性的,像共轭梯度这样的方法仍然适用,但可能无法正常工作。

+0

多尺度比这个相当简单的问题需要更复杂。 –

+0

他已经基本上在基于松弛的(梯度下降)解决方案中使用欧拉解算器。问题是如何加快速度。 –

+0

我们所做的是从一个接触网解决方案开始,并使用一个非线性求解器,即牛顿法。如果收敛有点疯狂,限制步长。你确实需要计算内力的雅可比行列式,但这很容易且紧密结合。 –

2

最简单的方法就是使用集总质量模型的有限元模型。

将橡皮筋分离成节点。内力是每个相邻节点之间的重量和弹力。你已经知道外力了。

用非线性求解器求解静态平衡方程。这比动态更难,因为没有惯性来帮助收敛。

如果你需要解决动态问题,最简单的方法是显式整合,只需天真的前进欧拉。

我的业务实际上是基于模拟这个确切问题的软件代码。如果你想了解更多,一般来说,搜索动态有限元悬链线求解器。