python - Why does scipy.optimize.curve_fit not fit correctly to the data? -


i've been trying fit function data while using scipy.optimize.curve_fit have real difficulty. can't see reason why wouldn't work.

# encoding: utf-8 __future__ import (print_function,                         division,                         unicode_literals,                         absolute_import,                         with_statement) import numpy np scipy.optimize import curve_fit import matplotlib.pyplot mpl  x, y, e_y = np.loadtxt('data.txt', unpack=true)  def f(x, a, k):     return (1/(np.sqrt(1 + a*((k-x)**2))))  popt, pcov = curve_fit(f, x, y, maxfev = 100000000)  mpl.plot(x, f(x, *popt), 'r-', label='fit') mpl.plot(x, y, 'rx', label='original') mpl.legend(loc='best') mpl.savefig('curve.pdf') print(popt)  # correct values should calculated # a=0.003097 # k=35.4 

here plot-image produced upper code: enter image description here

data.txt: #x      y       e_y 4.4     0.79    0.13 19.7    4.9     0.8 23.5    7.3     1.2 29.7    17      2.79 30.7    21.5    3.52 34      81      13.28 34.6    145     23.77 35.4    610     100 36.3    115     18.85 38.1    38      6.23 43.7    14      2.3 56.2    6.2     1.02 64.7    4.6     0.75 79.9    3.2     0.52 210     0.98    0.16 

firstly try not increase maxfev large, sign else going wrong! playing around can fit following addition:

def f(x, b, a, k):     return (b/(np.sqrt(1 + a*((k-x)**2))))  popt, pcov = curve_fit(f, x, y, p0=[20, 600.0, 35.0]) 

firstly give fitting function have given has maximum of 1, since peak in data 600, never fit. added overall factor b. secondly , try poor old curve_fit out. if eye can see peaks @ x~35 tell through p0. requires intuition how function works important if going use curve fitting function.

enter image description here


Comments

Popular posts from this blog

Spring Boot + JPA + Hibernate: Unable to locate persister -

go - Golang: panic: runtime error: invalid memory address or nil pointer dereference using bufio.Scanner -

c - double free or corruption (fasttop) -