Kurvetilpasning og Mindste Kvadraters Metode
Stryg for at vise menuen
Kurvetilpasning er et grundlæggende værktøj i dataanalyse, der gør det muligt at modellere forholdet mellem variabler ved at tilpasse en matematisk funktion til observerede datapunkter. Ved at identificere den kurve, der bedst repræsenterer dine data, kan du foretage forudsigelser, forstå underliggende tendenser og kvantificere relationer. Kurvetilpasning anvendes bredt inden for videnskabelig forskning, ingeniørarbejde og økonomi til opgaver som kalibrering af instrumenter, modellering af eksperimentelle data og 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 at have tilpasset en model til dine data, opnår du parameterestimater, der bedst beskriver den underliggende sammenhæng ifølge den valgte funktion. Disse tilpassede parametre kan fortolkes i konteksten af din model; for eksempel koefficienterne i et polynomium eller raten i et eksponentielt henfald. Kvaliteten af tilpasningen kan vurderes ved at undersøge residualer (forskelle mellem observerede og forudsagte værdier), visualisere tilpasningen og beregne statistiske mål såsom summen af kvadrerede residualer eller determinationskoefficienten (R²). Forståelse af betydningen af disse parameterestimater og deres usikkerheder er afgørende for at drage pålidelige konklusioner fra din analyse.
1. Hvilken funktion bruges til kurvetilpasning i SciPy?
2. Hvad minimerer mindste kvadraters tilpasning?
3. Hvordan kan du vurdere kvaliteten af en kurvetilpasning?
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat