为什么拟合效果不好
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
def func(x,a, b, c, d):
return ((-1)a(b**2)np.exp((-2)bx+2c))/(1+np.exp((-1)bx+c))**2
if name=='main':
data=pd.read_excel('C:/Users/admin/XX LDPM-and-GRM-main/1生长曲线.xlsx')
xdata=np.array(data['1Time'])
ydata =np.array(data['growth'])
#画出真实数据
plt.plot(xdata,ydata,'b-')
#指数函数拟合
popt, pcov = curve_fit(func, xdata, ydata,bounds=(-8, [-0.5,-0.15, 2,100]))#popt数组中,三个值分别是待求参数a,b,c
#预测值
y_pred = [func(i, popt[0],popt[1],popt[2],popt[3]) for i in xdata]
#画图
plt.plot(xdata,y_pred,'r--')
print(popt)
#输出R方
from sklearn.metrics import r2_score
r2 = r2_score(ydata , y_pred )
print('指数函数拟合R方为:',r2)