非线性最小二乘法拟合

来自专栏演算法, 无止境

通过指定函数来进行拟合. 这在实际应用中有著非常广泛的用途.

import numpy as npimport matplotlib.pyplot as pltfrom scipy.optimize import curve_fitx = np.arange(1, 17, 1)y = np.array([4.00, 6.40, 8.00, 8.80, 9.22, 9.50, 9.70, 9.86, 10.00, 10.20, 10.32, 10.42, 10.50, 10.55, 10.58, 10.60])def func(x,a,b): #定义函数 return a*np.exp(b/x)popt, pcov = curve_fit(func, x, y)a=popt[0]#popt里面是拟合系数,读者可以自己help其用法b=popt[1]yvals=func(x,a,b)plot1=plt.plot(x, y, *,label=original values)plot2=plt.plot(x, yvals, r,label=curve_fit values)plt.xlabel(x axis)plt.ylabel(y axis)plt.legend(loc=4)#指定legend的位置,读者可以自己help它的用法plt.title(curve_fit)plt.show()


推荐阅读:
查看原文 >>
相关文章