我想做一個對數擬合。但我不斷收到一個運行時錯誤:Scipy curvefit RuntimeError:找不到最佳參數:函數調用次數達到maxfev = 1000
Optimal parameters not found: Number of calls to function has reached maxfev = 1000
我使用下面的腳本。任何人都可以告訴我我哪裏出錯了嗎?我使用Spyder,我仍然是初學者。
import math
import matplotlib as mpl
from scipy.optimize import curve_fit
import numpy as np
#data
F1=[735.0,696.0,690.0,683.0,680.0,678.0,679.0,675.0,671.0,669.0,668.0,664.0,664.0]
t1=[1,90000.0,178200.0,421200.0,505800.0,592200.0,768600.0,1036800.0,1371600.0,1630800.0,1715400.0,2345400.0,2409012.0]
F1n=np.array(F1)
t1n=np.array(t1)
plt.plot(t1,F1,'ro',label="original data")
# curvefit
def func(t,a,b):
return a+b*np.log(t)
t=np.linspace(0,3600*24*28,13)
popt, pcov = curve_fit(func, t, F1n, maxfev=1000)
plt.plot(t, func(t, *popt), label="Fitted Curve")
plt.legend(loc='upper left')
plt.show()