由若干个坐标点形成的折线,求出针对该折线的拟合直线(使这些坐标点均匀分布直线的两边),并得出该拟合直线的斜率。
希望能用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
这就是最小二乘的解法
把折线的端点都做离散点处理,使用最小二乘公式,计算一个二元一次方程组就可以得到拟合直线的斜率了。
公式很简单的,五点为例:
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
这就是最小二乘的解法
把折线的端点都做离散点处理,使用最小二乘公式,计算一个二元一次方程组就可以得到拟合直线的斜率了。
公式很简单的,五点为例:
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([顾问团]寻开心)所说的,呵呵,记得你好像在算法版问过这个问题。