2017-05-14 2 views

Antwort

2

Werfen Sie einen Blick auf

https://docs.scipy.org/doc/scipy-0.19.0/reference/generated/scipy.optimize.curve_fit.html,

gibt es ein Beispiel an der Unterseite, die so ziemlich das tut, was Sie nach.

Edit: Antworten

import matplotlib.pyplot as plt; 
import numpy as np; 
import scipy.optimize as opt; 

# This is the function we are trying to fit to the data. 
def func(x, a, b, c): 
    return a * np.exp(-b * x) + c 

# Generate some data, you don't have to do this, as you already have your data 
xdata = np.linspace(0, 4, 50) 
y = func(xdata, 2.5, 1.3, 0.5) 
y_noise = 0.2 * np.random.normal(size=xdata.size) 
ydata = y + y_noise 

# Plot the actual data 
plt.plot(xdata, ydata, ".", label="Data"); 

# The actual curve fitting happens here 
optimizedParameters, pcov = opt.curve_fit(func, xdata, ydata); 

# Use the optimized parameters to plot the best fit 
plt.plot(xdata, func(xdata, *optimizedParameters), label="fit"); 

# Show the graph 
plt.legend(); 
plt.show(); 

Die x kommentieren, sind y-Daten die xdata und YDATA Variablen.

Wenn Sie also diesen Code verwenden möchten, nehmen Sie einfach das Bit heraus, in dem die Daten generiert werden, und definieren Sie Ihre x, y-Datenarrays als "xdata" und "ydata".

+0

Dieses Beispiel ist ziemlich komplex für mich, da ich neu in Python bin. Können Sie mir sagen, wo ich meine x- und y-Werte angeben soll, wenn ich den Code Ihres Beispiels verwende? –