Ajustement de Courbe et Moindres Carrés
Glissez pour afficher le menu
L'ajustement de courbe est un outil fondamental en analyse de données qui permet de modéliser la relation entre des variables en ajustant une fonction mathématique aux points de données observés. En identifiant la courbe qui représente le mieux vos données, il est possible de faire des prédictions, de comprendre les tendances sous-jacentes et de quantifier les relations. L'ajustement de courbe est largement utilisé en recherche scientifique, en ingénierie et en économie pour des tâches telles que l'étalonnage d'instruments, la modélisation de données expérimentales et la prévision.
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)
Après avoir ajusté un modèle à vos données, vous obtenez des estimations de paramètres qui décrivent au mieux la relation sous-jacente selon la fonction choisie. Ces paramètres ajustés peuvent être interprétés dans le contexte de votre modèle ; par exemple, les coefficients dans un polynôme ou le taux dans une décroissance exponentielle. La qualité de l'ajustement peut être évaluée en examinant les résidus (différences entre les valeurs observées et prédites), en visualisant l'ajustement, et en calculant des mesures statistiques telles que la somme des carrés des résidus ou le coefficient de détermination (R²). Comprendre la signification de ces estimations de paramètres et leurs incertitudes est essentiel pour tirer des conclusions fiables de votre analyse.
1. Quelle fonction est utilisée pour l'ajustement de courbes dans SciPy ?
2. Que minimise l'ajustement par moindres carrés ?
3. Comment évaluer la qualité d'un ajustement de courbe ?
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion