另附上其他部分:
declare @m float,@n int 
--@m存放平均值 
--@n存放记录数
declare @b float,@a float,@c float
declare @b1 float,@a1 float
select @m=avg(x),@n=count(*) from tselect @b1=sum(x*y)/sum(x*x) from (select y,x-@m as x from t) A
select @c=(sum(x*x*y)-sum(x*x)*sum(y)/@n)/(sum(x*x*x*x)-(1.0/@n)*sum(x*x)*sum(x*x)) from (select y,x-@m as x from t) A
select @a1=(sum(y)-@c*sum(x*x))/@n from (select y,x-@m as x from t) A
select @a=@a1-@b1*@m+@c*@m*@m,@b=@b1-2*@m*@c
select @a,@b,@c

解决方案 »

  1.   

    http://www.jstvu.edu.cn/xuebao/2001-6/xueshuyanjiu/shijianxulie.htm
    有兴趣的可以去参考一下这个页面。呵呵。它也是用最小二乘法算的。。
      

  2.   

    不是吧,是那个网站的数据是错的,呵呵,不好意思啊我再去找找看确切的数据在试下,呵呵。
    能麻烦你把最后的计算结果写一下吗??
    就是说:
    a=...
    b=...
    c=...
    希望是数学表达市,呵呵,谢谢你了
      

  3.   

    这个A B C不是直接计算出来的。
    方法那个讲师也说了,网上也有,是把曲线移到中点,得到满足sum(X)=0,得到简化公式,
    然后得到A1,B1,C1 
    其实C1就等于C
    然后把与中间的差距X-AVG(X)代入公式,得到真正的A B C参数。