在python中使用curve_fit方法擬合函數,具體方法如下:
mport numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
def func(x, a, b,c):
return a*np.sqrt(x)*(b*np.square(x)+c)
x = [20,30,40,50,60,70]
x = np.array(x)
num = [453,482,503,508,498,479]
y = np.array(num)
popt, pcov = curve_fit(func, x, y)
print(popt)
a = popt[0]
b = popt[1]
c = popt[2]
yvals = func(x,a,b,c) #擬合y值
print('popt:', popt)
print('系數a:', a)
print('系數b:', b)
print('系數c:', c)
print('系數pcov:', pcov)
print('系數yvals:', yvals)