【发布时间】:2022-09-24 20:02:27
【问题描述】:
我是新手,请帮助我,并提前感谢。我不适合此代码。
def cauchy(x, l, k, x1):
return l / 1+np.exp(-k*(x-x1))
distance= [1000*0.001, 2000*0.001, 3000*0.001, 4000*0.001,5000*0.001,6000*0.001,7000*0.001,8000*0.001,
9000*0.001, 11000*0.001, 12000*0.001, 13000*0.001, 14000*0.001, 15000*0.001, 16000*0.001,
17000*0.001, 18000*0.001, 19000*0.001, 21000*0.001, 22000*0.001, 23000*0.001, 24000*0.001, 25000*0.001, 26000*0.001,
27000*0.001, 28000*0.001, 29000*0.001, 30000*0.001, 31000*0.001, 32000*0.001, 33000*0.001,
34000*0.001, 35000*0.001]
amplitude= [26, 31, 29, 26, 27, 24, 24, 28, 24, 24, 28, 31, 24, 26, 55, 30, 73, 101, 168, 219, 448, 833, 1280, 1397, 1181, 1311,
1715, 1975, 2003, 2034, 2178, 2180, 2182]
plt.plot(distance,amplitude, \'o\')
popt, pcov = curve_fit(cauchy, distance, amplitude,maxfev=100, bounds=((-10, -10, -10), (3000, 3000, 3000)),p0=[2500, 1, 0])
print(popt)
plt.plot(distance, cauchy(distance, *popt), \'r\', label=\'cauchy fit\')
plt.show()
-
你所说的“合适”是什么意思?多项式不正确吗?
-
@SolarMike 拟合曲线看起来与我的数据不相似
-
首先修复您的功能:
l / ( 1+np.exp(-k*(x-x1)) )。 -
并使用适当的启动参数。你得到的 l 相当正确,但 x1 显然应该在 30 左右,给定你的数据。
-
问题:为什么函数叫做
cauchy,当它是一个逻辑函数时?
标签: python data-analysis curve-fitting