Schwierigkeiten mit curve_fit
Verfasst: Mittwoch 28. Oktober 2020, 18:20
Schönen Abend euch allen!
Ich arbeite daran eine Funktion auf Daten aus einer Titrationskurve zu fitten, zum Glück weiß ich, dass die Funktion in etwa eine logistische Funktion sein sollte. Leider passen die ausgegebenen Parameter nicht wirklich zu den Datenpunkten (s. Abbildung).
Die optimierten Parameter für die Funktion, die sich dabei ergeben, sind dann:
Der Graph der Funktion im Vergleich mit den Datenpunkten sieht dann so aus:

Das ist natürlich nicht das, was ich wollte... Hat jemand eine Idee, was ich falsch gemacht habe? Vielen Dank schon einmal!
Ich arbeite daran eine Funktion auf Daten aus einer Titrationskurve zu fitten, zum Glück weiß ich, dass die Funktion in etwa eine logistische Funktion sein sollte. Leider passen die ausgegebenen Parameter nicht wirklich zu den Datenpunkten (s. Abbildung).
Code: Alles auswählen
import numpy
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
xdata = numpy.array([0, 5, 7, 9.9, 10, 10.1, 13, 15, 20])
ydata = numpy.array([1, 1.5, 1.7, 4, 7, 10, 12.3, 12.5, 13])
xaxis = numpy.array([0, 20])
def func(x, L, k, x0):
return L/(1 + numpy.exp(-k*(x-x0)))
popt, pcov = curve_fit(func, xdata, ydata, bounds=([12., 1., 7.5], [14., numpy.inf, 8.5]))
plt.plot(xaxis, func(xaxis, *popt))
plt.plot(xdata, ydata, "bo")
print(popt)
plt.show()
Code: Alles auswählen
[12. 1. 8.5]
Das ist natürlich nicht das, was ich wollte... Hat jemand eine Idee, was ich falsch gemacht habe? Vielen Dank schon einmal!