!求一条折线的拟合直线的斜率!

时间:2022-11-02 03:48:18
做项目时遇以下问题:
由若干个坐标点形成的折线,求出针对该折线的拟合直线(使这些坐标点均匀分布直线的两边),并得出该拟合直线的斜率。
希望能用VB代码写出。拜托!


sitao@ynmail.com

5 个解决方案

#1


最小二乘呀。
把折线的端点都做离散点处理,使用最小二乘公式,计算一个二元一次方程组就可以得到拟合直线的斜率了。
公式很简单的,五点为例:
x   x1  x2  x3  x4  x5
y   y1  y2  y3  y4  y5

得到两个方程:
    (x1*x1+x2*x2+...+x5*x5)* a + (x1+x2+...+x5)b = (x1*y1 + x2*y2 + ... + x5*y5)
     (x1+x2+...+x5) *a + 5*b = (y1 + y2 + y3 + ... + y5)
通过这两个方程式,可以计算得到a和b的数值
得到的最终的直线方程就是:
    y = ax + b
这就是最小二乘的解法

#2


gz

#3


hehe,jf

#4


最小二乘法

#5


同意happy__888([顾问团]寻开心)所说的,呵呵,记得你好像在算法版问过这个问题。

#1


最小二乘呀。
把折线的端点都做离散点处理,使用最小二乘公式,计算一个二元一次方程组就可以得到拟合直线的斜率了。
公式很简单的,五点为例:
x   x1  x2  x3  x4  x5
y   y1  y2  y3  y4  y5

得到两个方程:
    (x1*x1+x2*x2+...+x5*x5)* a + (x1+x2+...+x5)b = (x1*y1 + x2*y2 + ... + x5*y5)
     (x1+x2+...+x5) *a + 5*b = (y1 + y2 + y3 + ... + y5)
通过这两个方程式,可以计算得到a和b的数值
得到的最终的直线方程就是:
    y = ax + b
这就是最小二乘的解法

#2


gz

#3


hehe,jf

#4


最小二乘法

#5


同意happy__888([顾问团]寻开心)所说的,呵呵,记得你好像在算法版问过这个问题。