我有一组从带有一些噪音的摆动运动中获得的 2D 点。我想确定绳索固定的,至少有两种方法可以使用线性回归来解决这个问题。我不确定选择哪一个以及为什么第一种方法没有给我可接受的结果(指示的坐标在预期的区域之外)。
方法 1) 从一个实验点到下一个实验点的每个位移都会给我们一条名为“s”的线。其垂线可通过下式获得:
现在我们获得了一组直线,其角度和线性系数和已知:
理想情况下,平衡点位于每条 i 线上:
使用 N 行的线性回归可以找到,同样也:
=
我的代码如下所示:
if((i+1) % 5 == 0){ //i+1 remember: i is initialized as zero
cout << "Let's sum up all cartesian elements" << endl;
m_sum += m;
b_sum += b;
m2_sum += m*m;
mb_sum += m*b;
N = i+1;
}
m_sum2 += m_sum*m_sum;
x0 = (N*mb_sum - b_sum*m_sum) / (N*m2_sum - m_sum2);
y0 = (m2_sum*b_sum - mb_sum*m_sum) / (N*m2_sum - m_sum2);
我实现了它,但它返回了我(-350,-140)。该点位于预期区域之外。
方法 2) 使用描述运动的数学模型(例如,抛物线)。并对一些我不习惯的矩阵进行线性回归。
谢谢!