【发布时间】:2020-11-25 09:48:51
【问题描述】:
我正在尝试使用曲线拟合计算偏移。我定义了我的已知变量并有一个未知变量。当我使用 logifunc 时,我 p0 中的变量不是定义的已知值。相反,我为每个变量都获得了一个新值。
Vergleich2['Wind']=Vergleich2.index
x2=Vergleich2.T.iloc[7]
y2=Vergleich2.T.iloc[6]
A2=popt[0]
b2=popt[1]
k2=popt[2]
off2=popt[3]
def logifunc(x2,A2,b2,k2,x0,off2):
return A2 / (1 + b2 * np.exp(k2 * (x2+x0)))+off2
x_data2 = Vergleich2['Wind']
popt2, pcov2 = curve_fit(logifunc, x2,y2,p0 = [A2,b2,k2,2,off2])
my popt is:
100.589
449.427
-0.695534
0.0554911
the popt2 output is:
100.204
846.734
-0.767603
0.517314
0.393996
为什么每个变量的值都会改变?
【问题讨论】:
-
嗯,这不是
curve_fit的本意:更改所有参数以更好地适应输入数据。如果它不会改变参数,它还能做什么?请注意,curve_fit允许对参数设置界限。 -
感谢您的回复。我想要一个具有固定值且只有一个 x0 的公式,您可以更改它以在 x 轴上移动曲线。 x0 应该是最佳偏移值,以便尽可能多的点靠近新曲线。你有什么建议吗?
标签: matplotlib scipy curve-fitting