python - Scipy curvefit RuntimeError:Optimal parameters not found: Number of calls to function has reached maxfev = 1000 -


i want make logharitmic fit. keep getting runtime error:

optimal parameters not found: number of calls function has reached maxfev = 1000

i use following script. can tell me go wrong? use spyder still beginner.

import math import matplotlib mpl scipy.optimize import curve_fit import numpy 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() 

your original data t1 , f1. therefore curve_fit should given t1 second argument, not t.

popt, pcov = curve_fit(func, t1, f1, maxfev=1000) 

now once obtain fitted parameters, popt, can evaluate func @ points in t obtain fitted curve:

t = np.linspace(1, 3600 * 24 * 28, 13) plt.plot(t, func(t, *popt), label="fitted curve") 

(i removed 0 t (per stugrey's answer) avoid warning: divide 0 encountered in log.)


import matplotlib.pyplot plt import scipy.optimize optimize import numpy np  # data f1 = np.array([     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 = np.array([     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])  plt.plot(t1, f1, 'ro', label="original data")  # curvefit  def func(t, a, b):     return + b * np.log(t)  popt, pcov = optimize.curve_fit(func, t1, f1, maxfev=1000) t = np.linspace(1, 3600 * 24 * 28, 13) plt.plot(t, func(t, *popt), label="fitted curve") plt.legend(loc='upper left') plt.show() 

enter image description here


Comments

Popular posts from this blog

c# - How to add a new treeview at the selected node? -

java - netbeans "Please wait - classpath scanning in progress..." -