ich verzweifle gerade etwas. Ich habe eine Menge an Punkten und möchte über diese eine Fit-Kurve legen, aber aus irgend einem Grund liegt der Fit komplett daneben und ich verstehe nicht, weshalb! Ich hoffe, dass mir hier jemand helfen kann.
Mein Quellcode lautet wie folgt:
Code: Alles auswählen
import math
import numpy
import pylab
import scipy.optimize
import scipy.interpolate
def quadfit(x,a,b):
return a*(x**2) + b
def uad(x,a,b):
return a*numpy.exp(b*x)
def gauss(x,a,b):
return a*numpy.sqrt(1+(x**2/b**2))
def give_params(xt,yt):
params, k = scipy.optimize.curve_fit(quadfit,xt,yt)
return params,k
def plot_fit(xdata,ydata,params):
pylab.plot(xdata,ydata,"bo", label = "Punkte", markersize = 2.0)
pylab.plot(xdata,gauss(xdata,*params),"b", label = "fit")
pylab.xlabel('$a_0$ in $2\pi$')
pylab.ylabel('E in MeV')
pylab.legend(loc='upper left')
pylab.show()
return None
xdata = numpy.array([1,2,3,4,5,6,7])
ydata = numpy.array([1,4,10,15,26,35,50])
params,k = give_params(xdata,ydata)
plot_fit(xdata,ydata,params)