我有一个涉及3D定位的问题 - 有点像GPS。给定一组已知的3d坐标(发射器)和它们距离未知点的距离d,我想找到未知点(接收器)。有8个已知点。距离精确到约0.3毫米,我想多边缘以找到最精确的接收器位置。
但是在任何给定的时间点,从这些已知点之一到未知点的距离可能会被阻挡,并且会给出不正确的距离结果。此外,在任何给定点,非阻塞(和可用)范围可能会被8.7毫米的恒定误差关闭(但如果我检测到这一点,我可以很容易地纠正它)。
最好的方法是什么?由于我的数据不可能有一个精确的解决方案(所有4个球体可能都没有一个完美的交叉点),算法需要能够逼近它。我已经看到依赖于迭代来确定最小误差的算法,但是如何过滤掉不正确的范围并识别" off-by-constant"范围是多少?
编辑:一旦我找到一个相当自信的位置,我可以使用此先前的位置数据和我的更新率来过滤掉不良结果..困难在于找到第一个位置。答案 0 :(得分:0)
不要尝试使用Newton-Gauss。成本函数在成本函数的一阶导数中具有不连续点,这使得基于牛顿的算法不可用(它们几乎从不收敛)。尝试使用直接搜索算法系列(我试过它,它完美地工作)。有用。谷歌直接搜索功能优化算法。有很多很好的例子。这是一个相当简单的算法 - 所以它使计算和#34;便宜"。但它对起点的选择有点敏感。