0

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

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

minimum_squares 中的起始位置是 [0,0] 但更改后我没有得到太大不同的结果。

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

4

1 回答 1

-1

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

于 2018-09-25T03:04:27.240 回答