Scipy curve_fit: "RuntimeWarning: invalid value encountered in log"

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
aug_lager
User
Beiträge: 26
Registriert: Sonntag 4. Januar 2015, 12:01

Hallo liebes Forum,

ich habe eine Reihe von x,y-Werten und würde gerne eine Funkltion finden, die diese Werte annähernd wiedergibt. Ich habe herausgefunden, dass dies mit Scipy möglich ist und habe folgendes probiert:

Code: Alles auswählen

import numpy as np
from scipy.optimize import curve_fit

xdata = np.array([0,10,20,30,40,50,60,70,80,90,100])
ydata = np.array([5,9,14,17.5,21,24.75,27,29,32,37.5,47.5])

def func(x,a,b,c,d,e):
    return np.log((a+x)*b)-np.log((c-x)*d)+e

popt, pcov = curve_fit(func, xdata, ydata, p0=(40,18,105,6,33))
Wenn ich das Skript ausführe, erhalte ich folgende Fehlermeldung:

Code: Alles auswählen

RuntimeWarning: invalid value encountered in log
Das liegt vermutlich daran, zu irgendeinem Zeitpunkt der ln(0) bzw. ln(-1) berechnet wird. Ich sehe aber keine Möglichkeit, den Verlauf von curve_fit zu steuern, so dass ich solche Fälle abfangen kann. Sieht jemand von euch einen Weg, wie ich hier zu einer Lösung komme?
aug_lager
User
Beiträge: 26
Registriert: Sonntag 4. Januar 2015, 12:01

Hat sich erledigt :D . Mir ist eben aufgefallen, dass die Funktion damit nicht beendet wird, somit war das Problem gar keins.
Antworten