Advertisement
Guest User

Untitled

a guest
Jul 17th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.89 KB | None | 0 0
  1. from scipy.optimize import curve_fit
  2. import numpy as np
  3.  
  4. def sigmoid(x, x0, k):
  5. y = 1 / (1 + np.exp(-k*(x-x0)))
  6. return y
  7.  
  8. ppov, pcov = curve_fit(sigmoid, np.arange(len(ydata)), ydata, maxfev=20000)
  9.  
  10. ydata1 = [0,0,0,0,0,91,91]
  11.  
  12. RuntimeError: Optimal parameters not found: gtol=0.000000 is too small func(x) is orthogonal to the columns of the Jacobian to machine precision.
  13.  
  14. ppov, pcov = curve_fit(sigmoid, np.arange(len(ydata1)), ydata1, maxfev=20000, method='dogbox')
  15. print(ppov[0], ppov[1])
  16. 5.189237217957538 11.509279446215949
  17.  
  18. ydata2=[0,3,5,30,34,50,91]
  19.  
  20. ppov, pcov = curve_fit(sigmoid, np.arange(len(ydata2)), ydata2, maxfev=20000)
  21. print(ppov[0], ppov[1])
  22. -24.681668846480264 118.77183210605865
  23.  
  24. ppov, pcov = curve_fit(sigmoid, np.arange(len(ydata2)), ydata2, maxfev=20000, method='dogbox')
  25. print(ppov[0], ppov[1])
  26. 0.28468096463676695 8.154477352500013
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement