读书人

求一拟合算法

发布时间: 2012-02-04 15:43:08 作者: rapoo

求一拟合算法,在线等。
请问大家谁能写个拟合公式,

要求是根据原点和另外两个点
(0 < x1 < x2 ; 0 < y1 < y2)
拟合出一条直线,

此直线不经过以上任何一点,
在三点的之间的区域内,
类似鱼刺的椎刺那样的形式,

求次算法,拜托了,谢谢,在线等。

[解决办法]
注意:前提是你必须去掉(不能过原点)这种说法,除非你的点另有物理含义

最小二乘意义的解算法如下
假定三点过直线y=kx+b
则三点采样值带入后得到yi=kxi+b i=1,2,3

则我们求E(k,b)=∑[(yi-kxi-b)^2]最小意义上的直线
很显然,这是对k,b的二次方程,必然有最小值
最小值在dE/dk=0和dE/db=0的时得到

上面的微分方程的是一个二元一次方程,很容易求解的
0=dE/dk=-2∑Xi[(yi-kxi-b)]
0=dE/db=-2∑[(yi-kxi-b)]
也就是
k∑XiXi+b∑Xi=∑XiYi
k∑Xi+3b=∑Yi

其中∑表示求和


读书人网 >C++

热点推荐