首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >三次数学检验

三次数学检验
EN

Stack Overflow用户
提问于 2014-04-11 10:35:18
回答 1查看 1.1K关注 0票数 0

我正试着把一个室内三边化程序装在N个BLE物体上。在我的房间里有任意数量的信标,我的ipad可以把它在里面的位置跟踪到一个亚米的精确程度(我希望)。

我让GIS溢流板上的这个问题 (我也会把这个问题放在哪里)来检查我最初的Trilateration程序。我唯一得到的评论是我来这份报纸

现在,我正试图在我的代码中实现他们的迭代三元数数学。他们的公式如下(很抱歉,我不知道如何提出正确的数学公式):

参照点= Xi,Yi 距离= di 平凡初值= Xe,Ye 距离估计误差=x= di−−((xi−xe )^2 + (yi−ye )^2)

接下来,他们对Xe和Ye的初步估计采用如下的增量:

Xe = Xe + 0.05 Delta x Ye = Ye + 0.05 Delta y

在这个新的德尔塔,他们修改了原来的fi方程如下:

= di−−((xi−xe )^2 + (yi−ye )^2) / di

现在,阅读我编写的代码如下:

代码语言:javascript
复制
public GameObject refPoint1, refPoint2;
public float d = 0.0f;
public float f1 = 0.0f;
public float xe, ye = 0.0f;
public float multiplier = 0.05f;

// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () 
{
    xe = xe + multiplier * Math.Abs(refPoint1.transform.position.x);
    ye = ye + multiplier* Math.Abs(refPoint1.transform.position.y);
    d = Vector3.Distance(refPoint1.transform.position, refPoint2.transform.position);
    f1 = d - (Mathf.Sqrt((refPoint1.transform.position.x - xe) * (refPoint1.transform.position.x - xe) + 
                         (refPoint1.transform.position.y - ye) * (refPoint1.transform.position.y - ye))) / d;

}

在我的统一场景中,我已经将上面的代码放置在我的三个领域中的每一个上两次,这样每个球体都能够引用另外两个球。然而,当我运行这个程序时,我的xe, ye and f1就会继续增长。

我只是想知道我是不是做错了什么,或者误解了我不该做的事情?对此的任何见解都将受到感谢。

EN

回答 1

Stack Overflow用户

发布于 2014-04-12 06:28:05

他们首先用绝对误差来描述该方法(高斯-牛顿)。然后,他们暗示,他们使用相对误差,这是他们称为未知的原因分数误差,做实际的计算,在本文中提出。

表示

代码语言:javascript
复制
gi(x,y)=sqrt(sqr(x-xi)+sqr(y-yi))

的绝对值是

代码语言:javascript
复制
di-gi(x,y)

的绝对值为相对误差

代码语言:javascript
复制
(di-gi(x,y))/di = 1-gi(x,y)/di

在B的公式中,如果将相对误差用作fi,则必须将每一行除以di。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23010197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档