分段对数函数拟合半对数图数据失败问题求助
分段对数函数拟合半对数图数据未达预期问题
我需要用两个不同的对数函数(手绘紫色、红色曲线)拟合半对数图中的数据,尝试通过piecewise函数结合scipy.optimize.curve_fit实现,但拟合结果始终达不到预期,多次调整仍未解决。
现有实现代码
import numpy as np from scipy.optimize import curve_fit def func_stuck(t, a, b, c, d, e , f): # x-shifted log y = np.piecewise(t, [t < 100, t >= 100], [lambda t:a*np.log(t + b)+c, lambda t:d*np.log(t + e)+f]) return y plt.semilogx(sensor_array__[0],sensor_array__[1]) popt, pcov = curve_fit(func_stuck,sensor_array__[0], sensor_array__[1],maxfev=100000000) function_x = np.linspace(0.1 , 1200, 1200) fitted_y = np.asarray(popt[0]*np.log(function_x + popt[1])+popt[2]+popt[3]*np.log(function_x + popt[4])+popt[5]) plt.semilogx(function_x,fitted_y)
拟合结果对比
- 当前拟合结果:

- 预期拟合效果:

- 第二次尝试结果:

数据文件地址
https://www.dropbox.com/s/87g1ky1b92xqj3u/sample.csv?dl=0
内容的提问来源于stack exchange,提问作者Ali AlCapone
相关产品推荐
相关产品推荐

