Matlab曲线拟合每次都返回不同的参数值

时间:2015-10-23 10:54:13

标签: matlab curve-fitting

我试图使用以下公式拟合一些数据,这是一个修改后的误差函数,包含4个未知参数(我主要对 par4 感兴趣):

Y = par1+(par2*(erf((X-par3)/ par4))) 

如果我设置了一些合理的起点,数据点的拟合度相当好(R-square~0.95),但发现的某些参数的误差范围很广。下面是拟合数据的图像,拟合曲线和找到的参数。

数据和适合度:

Data and Fit

   par4 =      0.9109  (-52.89, 54.71)
   par2 =     0.02647  (0.02421, 0.02872)
   par3 =       38.15  (8.128, 68.18)
   par1 =      0.8647  (0.8624, 0.867)

如果我稍微改变起点(例如,对于par4,从0.5到0.1),最终拟合值会发生变化。类似地,如果我使`TolFun值更大,最终参数和它们的错误变化以及拟合。在某些情况下,我甚至没有找到找到的参数的错误间隔。例如(如果我设置par4起点= 3而其他的保持不变)我得到:

   par4 =      0.1712
   par2 =     0.02674
   par3 =       38.63
   par1 =      0.8649  (0.8625, 0.8672)

你可以想象,我在拟合过程的数学方面不是专家,但我认为不同的结果意味着数据很差(曲线中心没有数据点),许多曲线可以用相对较好的R平方重现它。此外,大的错误间隔可能意味着数据中的扩散很大。我的想法是否正确?

此外,选项TolFun控制的是什么?并且,我知道错误间隔是根据95%(2sigma)标准计算的;我可以将其更改为68%(1sigma)以获得更窄的错误间隔吗?

0 个答案:

没有答案