weixin_52647079 2021-09-08 09:36 采纳率: 0%
浏览 120

python拟合指数函数时,为什么拟合的非常差?

本人拟合用指数拟合曲线的时候,出闲了这种情况,求解啊,附上代码

img


from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']

=============================================================================

指数函数拟合

=============================================================================

def func(x, a, b):
return a*np.exp(-b * x)

if name=='main':
# data=pd.read_excel('data_p_2009-2018.xlsx')

ydata=np.loadtxt(r'D:\python_learning\memristor\He HD\set_H.txt')/100000000
xdata=np.arange(len(ydata))

#画出真实数据
plt.scatter(xdata,ydata,color='blue')


#指数函数拟合
popt, pcov = curve_fit(func, xdata, ydata)#popt数组中,三个值分别是待求参数a,b

#预测值
y_pred = [func(i, popt[0],popt[1]) for i in xdata]

#画图
plt.plot(xdata,y_pred,'r')

print('popt_p:',popt)

plt.show()
  • 写回答

3条回答 默认 最新

  • 於黾 2021-09-08 09:41
    关注

    你给的一堆点明明是对数曲线,非要拟合成一条指数曲线,那能匹配才见鬼了
    =-=-=-=-=-=-=
    再仔细看看,小于15的部分符合指数规律,大于15的部分符合对数规律,你这是个正弦曲线吗

    评论

报告相同问题?

问题事件

  • 创建了问题 9月8日