我正在使用Matlab中的nlinfit
函数绘制一条最适合我的数据集的行。我使用的功能是f = @(a, b) 1 - exp(-(x/a)^b)
。对于大多数数据集来说,这种方法很好,但是对于一些数据集来说,这是关闭的,我收到了警告:
警告:
解决方案中的雅可比行列式是病态的,并且可能无法很好地估计某些模型参数(它们不可识别)。谨慎做出预测。
我发现通常我们大致有a=5, b=5
,但对于不正确的契约nlinfit
,a=0, b=-0.02
或a=4.6, b=174
。我在下面列出了图表和数据点。
x y3 y2 y1
0.8 0 0.08 0
1.8 0 0 0.17
2.8 0 0 0
3.3 0.08 0 0
3.7 0 0 0.17
4.0 0 0 0.33
4.6 0.75 0.67 0.67
4.9 0.92 0.42 0.75
5.3 0.83 0.5 0.83
5.8 0.92 0.83 1
6.8 1 0.92 1
7.8 1 1 1
出了什么问题?!