三边形和非最小二乘法

时间:2018-01-25 12:57:01

标签: python-3.x least-squares trilateration

我正在尝试使用trilateration查找信标位置的用户距离。我有一个均方误差函数,我试图最小化使用非线性最小二乘但我没有得到正确的结果。任何帮助表示赞赏。代码如下。

def mse(self, user_pos, positions, distances):
    mse = 0.0
    for pos, dist in zip(positions, distances):
        distance = great_circle((user_pos[0], user_pos[1]), (pos[0], pos[1])).meters
        mse += math.pow(distance - dist, 2.0)
    return mse/len(positions)

def least_squares_func(self, positions, distances):
    # Returns users coordinates
    return least_squares(self.mse, [0,0], args=(positions, distances)).x

在least_squares中的起始位置是[0,0],但在更改之后我的结果并没有太多不同。

输入示例: position = [(5.0,-6.0),(13.0,-15.0),(21.0,-3.0)] 距离= [8.06,13.97,23.32]

1 个答案:

答案 0 :(得分:-1)

great_circle用于GPS,其中我们处理信标的扁球体,您必须使用简单的欧几里得度量来计算用户与每个信标之间的距离。

相关问题