双指数拟合

从最小二乘的思想出发,这里记已知待拟合的数据点为双指数拟合
,设要拟合的参数是双指数拟合
,定义目标函数双指数拟合
,其中双指数拟合
双指数拟合
分别是数据的双指数拟合
值 和 将当前拟合参数和对应的数据双指数拟合
带入进去得到的值,即 【双指数拟合】 双指数拟合
。方法1:转化为优化问题,参数是双指数拟合
,目标函数是双指数拟合
,用一些最优化的方法求解即可。例如梯度下降法(试过,很慢),牛顿法,信赖域法等等。可能有多个收敛点,要注意换换初值,而且步长要选好,exp指数上的系数一点点变化波动太剧烈。所以推荐使用matlab自带的优化的函数求解,如fminunc。方法2:求上述目标函数最小,即求双指数拟合
,化为4个方程(分别是双指数拟合
),利用非线性方程组求根的方法求解。方法3:其实matlab还有个叫做cftool的工具箱,可以直接拟合给定的函数类型。
■网友
如果x能取0, 可以得到一个约束:a+c=y(0). 另外,可以考察x趋向正负无穷大时y的渐进特性。比如说x趋向于负无穷时y趋于0,说明b和d都必须大于0,等等。这些约束可以帮助缩小参数空间,或者能透露所选模型是否合适
■网友
补充一下~MATLAB里有一个函数lsqcurvefit,即最小二乘优化,已知函数形式,因变量值和自变量值,就可以拟合出函数中所有参数的值。当然你得先给各个参数的初始值MATLAB才能搜寻……所以答案不唯一,一般都是不断选择初始值看哪一个拟合结果最合适…


    推荐阅读