松紧带快速松弛算法

标签 algorithm optimization

我正在寻找一种希望存在的算法,但也许我还没有找到合适的术语来搜索...

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

目前我已经解决了这个问题,方法是用一些等距点对频带进行初始猜测,计算每个样本点的力,将点沿合力方向移动并重复直到不再发生实质性移动.

但是,我想知道是否有更有效的解决方案?搜索有关该主题的出版物的合适术语是什么?

感谢任何提示!

最佳答案

最简单且完全通用的方法是使用集中质量模型的有限元模型。

将橡皮筋离散为节点。内力是重量和每个相邻节点之间的 Spring 力。您已经了解外部力量。

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

如果您需要解决动态问题,最简单的方法是显式积分,只需朴素的正向欧拉。

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

关于松紧带快速松弛算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7121659/

相关文章:

algorithm - 这个 O(N*k) 排序算法是什么?

javascript - 操作在后端还是前端?

c++ - boost 反序列化优化?

perl - 如何扩展二进制搜索迭代器以使用多个目标

algorithm - 在 O(logn) 时间内找到第 k 个最小的数字

algorithm - 有没有一种算法可以在恒定时间内返回堆栈中第二大的元素?

algorithm - Fischer 互斥算法

java - 有效地查找正则表达式的所有重叠匹配项

r - 如何在 DEoptim (R) 中使用 "fnmap"设置整数约束

optimization - 将 Oracle BLOBS 批量提取到文件中 - 需要建议/调整帮助