2020-09-21

曲线拟合(curve fitting)是指选择适当的曲线类型来拟合观测数据,并用拟合的曲线方程分析两变量间的关系。
用的是python3.5版本。

<曲线拟合>代码如下(示例):

曲线拟合

import pylab
import numpy as np
import sys, os
from scipy.optimize import curve_fit

def func(x, a, b, c):
return b * np.power(a, x) + c

if name == “main”:
x = np.arange(1, 31, 1)
y = np.array([20, 23, 26, 29, 32, 35, 38, 45, 53, 62, 73, 86, 101, 118, 138, 161, 188, 220, 257, 300, 350, 409, 478, 558, 651, 760, 887, 1035, 1208, 1410])

popt, pcov = curve_fit(func, x, y) # 曲线拟合,popt为函数的参数list
y_pred = [func(i, popt[0], popt[1], popt[2]) for i in x] # 直接用函数和函数参数list来进行y值的计算
print(popt)

plot1 = pylab.plot(x, y, ‘*’, label=‘original values’)
plot2 = pylab.plot(x, y_pred, ‘r’, label=‘fit values’)
pylab.title(’’)
pylab.xlabel(’’)
pylab.ylabel(’’)
#pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0))
pylab.legend(bbox_to_anchor=(0,1.02,1,0.2), loc=“lower left”,
mode=“expand”, borderaxespad=0, ncol=3)

pylab.show()
pylab.savefig(‘p1.png’, dpi=200, bbox_inches=‘tight’)
拟合出来的曲线如下图:
2020-09-21