Kurvanpassning och minsta kvadratmetoden
Svep för att visa menyn
Kurvanpassning är ett grundläggande verktyg inom dataanalys som gör det möjligt att modellera sambandet mellan variabler genom att anpassa en matematisk funktion till observerade datapunkter. Genom att identifiera den kurva som bäst representerar dina data kan du göra förutsägelser, förstå underliggande trender och kvantifiera relationer. Kurvanpassning används ofta inom vetenskaplig forskning, teknik och ekonomi för uppgifter som kalibrering av instrument, modellering av experimentdata och prognoser.
12345678910111213141516171819202122232425import numpy as np from scipy.optimize import curve_fit import matplotlib.pyplot as plt # Generate synthetic data with noise def model_func(x, a, b, c): return a * np.exp(-b * x) + c np.random.seed(0) x_data = np.linspace(0, 4, 50) y_data = model_func(x_data, 2.5, 1.3, 0.5) + 0.2 * np.random.normal(size=x_data.size) # Fit the model to the data popt, pcov = curve_fit(model_func, x_data, y_data) # Plot the data and the fitted curve plt.scatter(x_data, y_data, label="Data") plt.plot(x_data, model_func(x_data, *popt), color="red", label="Fitted Curve") plt.legend() plt.xlabel("x") plt.ylabel("y") plt.title("Curve Fitting with curve_fit") plt.show() print("Fitted parameters:", popt)
123456789101112131415161718192021222324252627282930313233import numpy as np from scipy.optimize import least_squares import matplotlib.pyplot as plt # Generate synthetic data def true_func(x): return 3 * x**2 + 2 * x + 1 np.random.seed(1) x = np.linspace(-3, 3, 30) y = true_func(x) + np.random.normal(scale=2, size=x.size) # Define the residuals function for least_squares def residuals(params, x, y): a, b, c = params return a * x**2 + b * x + c - y # Initial guess for parameters initial_guess = [1, 1, 1] result = least_squares(residuals, initial_guess, args=(x, y)) a_fit, b_fit, c_fit = result.x # Plot the results plt.scatter(x, y, label="Data") plt.plot(x, true_func(x), label="True Function", linestyle="dashed") plt.plot(x, a_fit * x**2 + b_fit * x + c_fit, color="red", label="Least Squares Fit") plt.legend() plt.xlabel("x") plt.ylabel("y") plt.title("Least Squares Fitting with least_squares") plt.show() print("Estimated parameters:", a_fit, b_fit, c_fit)
Efter att ha anpassat en modell till dina data får du parameteruppskattningar som bäst beskriver det underliggande sambandet enligt den valda funktionen. Dessa anpassade parametrar kan tolkas i modellens kontext; till exempel koefficienterna i ett polynom eller hastigheten i en exponentiell avklingning. Kvaliteten på anpassningen kan bedömas genom att undersöka residualer (skillnader mellan observerade och förutsagda värden), visualisera anpassningen och beräkna statistiska mått såsom summan av kvadrerade residualer eller determinationskoefficienten (R²). Förståelsen av betydelsen av dessa parameteruppskattningar och deras osäkerheter är avgörande för att dra tillförlitliga slutsatser från din analys.
1. Vilken funktion används för kurvanpassning i SciPy?
2. Vad minimerar minsta kvadratmetoden?
3. Hur kan du utvärdera kvaliteten på en kurvanpassning?
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal