此示例代码使用具有两个形状参数(a和b)和偏移项(不影响曲率)的表达式。方程为“y=1.0/(1.0+exp(-a(x-b)))+Offset”,参数值a=2.1540318329369712E-01,b=-6.6744890642157646E+00,Offset=-3.524129985969645e-01,R平方为0.988,RMSE为0.0085。
该示例包含您用Python代码发布的数据,用于拟合和绘制,并使用scipy.optimize.differential_evolution遗传算法自动估计初始参数。差分进化的scipy实现使用拉丁超立方体算法来确保对参数空间的彻底搜索,这需要搜索的范围-在本示例代码中,这些范围基于最大和最小数据值。
import numpy, scipy, matplotlib
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
from scipy.optimize import differential_evolution
import warnings
xData = numpy.array([19.1647, 18.0189, 16.9550, 15.7683, 14.7044, 13.6269, 12.6040, 11.4309, 10.2987, 9.23465, 8.18440, 7.89789, 7.62498, 7.36571, 7.01106, 6.71094, 6.46548, 6.27436, 6.16543, 6.05569, 5.91904, 5.78247, 5.53661, 4.85425, 4.29468, 3.74888, 3.16206, 2.58882,