Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 刚体几何中值_Algorithm_Geometry_Mathematical Optimization_Rigid Bodies - Fatal编程技术网

Algorithm 刚体几何中值

Algorithm 刚体几何中值,algorithm,geometry,mathematical-optimization,rigid-bodies,Algorithm,Geometry,Mathematical Optimization,Rigid Bodies,我需要实现一个适用于刚体的“几何中值”类型的算法,这意味着它不仅要找到一个使与一组点的距离最小化的点,而且还要考虑到刚体的方向。我在任何地方都没有找到这类问题的解决方案,而对于几何中值(或韦伯或费马-托里切利问题,或设施位置问题),有很多可用信息,包括魏斯菲尔德算法(以及现代改进)。我希望有人能参考可能的解决方案。我本以为这是注册中比较常见的问题,但也许我还没有找到合适的词来搜索 我的问题可以表述如下:假设我有一个具有3个非共线点(三角形)的“参考”刚体,我测量了3个点的坐标很多次(有一些误差,

我需要实现一个适用于刚体的“几何中值”类型的算法,这意味着它不仅要找到一个使与一组点的距离最小化的点,而且还要考虑到刚体的方向。我在任何地方都没有找到这类问题的解决方案,而对于几何中值(或韦伯或费马-托里切利问题,或设施位置问题),有很多可用信息,包括魏斯菲尔德算法(以及现代改进)。我希望有人能参考可能的解决方案。我本以为这是注册中比较常见的问题,但也许我还没有找到合适的词来搜索

我的问题可以表述如下:假设我有一个具有3个非共线点(三角形)的“参考”刚体,我测量了3个点的坐标很多次(有一些误差,或者物体有点移动)。我想找到一个好的“中心位置”,它可以最小化每个测量点与其对应的中心位置对象点之间的距离总和(不是平方距离)。这相当于“多设施位置问题”,但“设施”之间的固定距离和每个点预先分配给一个设施(不一定是最近的一个)有额外的限制

事实上,我在想,不是最小化所有点的和,而是每次测量只保留3个点的最大距离。(这就是所谓的“minimax”?)但我认为这不会对我必须使用的算法类型产生很大的影响

与几何中值相比,一个可能的困难是,随着旋转自由度的增加,最小化的数量不再是凸的(不是100%确定,但我认为)。我希望我仍然可以使用类似于Weiszfeld的算法(这是一种次梯度法),希望这已经在之前进行过研究。谢谢你的帮助


另外,我将在Matlab中进行此操作。

我找不到任何关于此主题的研究。我要做的第一件事是使用不带刚性约束的Weiszfeld算法来查找各个点的几何中间点,定义与对象边缘与预期值的偏差相对应的拉格朗日乘数,并使用梯度下降来查找受约束的局部最小值。我不能证明它总是有效的,但是,凭直觉,只要偏差足够小,它就应该有效。

如果你用数字来做第二部分(我想你必须这么做),记住这一点,谢谢,我本周遇到了这个(拉格朗日乘数维基)。如果我这样做,请记住一件好事。我不知道这是否有帮助,但你能看看《图形宝石IV》这本书吗?有一种宝石(第一章,第1节,第3页)名为“多边形的质心”,作者描述了一种用基本力学求多边形质心的方法。如果你不能在物理上访问这本书,请在谷歌书店在线查看。谢谢,这是一个完全不同的问题(最小二乘法和不涉及旋转)。我可以想出一个简单的方法来直接计算,不需要迭代优化算法。澄清一下,我不是在寻找一个物体内部的一个点,而是一个物体的中心位置和方向,与它自身的许多其他副本相比。