这个函数(y=a(1-exp(-bx)))的拟合搞了一个星期也没搞满意,因为高数都忘完了呵呵,我是用最小二乘法和牛顿迭代法进行处理的,最后的结果和专业的曲线拟合工具得出的结果相差很远。那位高人有好的办法没?QQ41810685

解决方案 »

  1.   

    我的具体做法是:
        用函数的残差平方和分别对a和b求偏导,得出一方程组,再用牛顿迭代法解此方程组得出a和b的值。因为中间中间转换公式及过程较复杂,在这里也不易表示出来,所以中间数学转换在此就不说了。有兴趣的朋友可以加我QQ来共同探讨,QQ:41810685,另外,浮点数我也改用足够高的精度了还是不行。结果一样,和专业的曲线拟合工具(origin)拟合结果相差甚远。
      

  2.   

    我检验了一下这个迭代算法和这个最小二乘法。用于其它的函数(y=a*x*x+b和y=a*exp(-bx)+c),都没有问题,结果准确度也很高。但用于(y=a(1-exp(-bx))时,我发现:b的取值大小跟最终迭代结果的准确度有很大关系,当我取a=3,b=12时,准确度挺高,基本可以达到目的,但b取0.5或0.05时,准确度就很差了。而实际所采集数据所符合的函数的b值大约是0.00486。
    我检验的方法就是,用符合所检验的函数的值来代替实际采集值。