Quadratischer Fit über Punkte

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Bayro97
User
Beiträge: 6
Registriert: Dienstag 21. Mai 2019, 12:53

Guten Morgen,

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)

Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

Was erwartest Du, wenn Du quadratisch fittest und mit den Parametern einen Gauß zeichnest?
Antworten