Matlab曲线拟合工具中应使用哪种类型的方程拟合S型特征数据?
拟合方案推荐
你遇到的上限区间拟合偏差问题,核心原因是常规对称S型函数和你数据的非对称趋势不匹配,可选用以下两类方程解决:
- 5参数Logistic(5PL)函数
这是解决非对称S型拟合的首选方案,在标准3参数对称Logistic函数基础上新增了不对称调整因子,可适配上下渐近线附近的变化速率差异,方程形式为:y = A2 + (A1 - A2) / (1 + exp((x - x0)/k))^g
各参数含义:A1为下渐近线估值,A2为上渐近线估值,x0为曲线中点位置,k为斜率系数,g为不对称因子(g=1时退化为对称3PL函数)。
你可以直接代入以下初值启动拟合:A1≈-650,A2≈130,x0≈2,k≈3,g≈1,拟合出来的g值如果明显偏离1,就说明数据确实存在非对称特征,刚好解决你上限拟合不准的问题。 - 带截距的Gompertz函数
本身就是非对称S型函数,对上限趋近阶段的拟合适配性更强,适配你的负值数据的方程形式为:y = y0 + A * exp(-B * exp(-k * x))
初值参考:y0≈-650,A≈780,B≈1,k≈1。
如果拟合时发现上限区间还有缓慢的漂移趋势,可在上述方程后加一个小系数的线性修正项+ a*x即可,你数据末尾的小幅波动属于测量噪声,拟合时可采用加权最小二乘法给边界点适当降权,避免噪声拉偏拟合结果。
原始离散数据
-20.5 -632.8475722 -19.5 -633.3214772 -18.5 -646.6016049 -17.5 -683.4637841 -16.5 -649.8121364 -15.5 -616.4297769 -14.5 -609.9639983 -13.5 -534.5818772 -12.5 -532.2347152 -11.5 -452.9222271 -10.5 -427.6525318 -9.5 -380.3710984 -8.5 -322.5516672 -7.5 -294.1208624 -6.5 -222.1675481 -5.5 -202.2179342 -4.5 -165.122709 -3.5 -134.827559 -2.5 -88.25392126 -1.5 -66.0446787 -0.5 -52.03853651 0.5 -35.01795243 1.5 -18.27307888 2.5 4.200002613 3.5 31.46742774 4.5 65.02174186 5.5 113.4098161 6.5 132.8355363 7.5 115.0080076 8.5 124.3832919
数据趋势图

内容的提问来源于stack exchange,提问作者user5618251
相关产品推荐
相关产品推荐

