Апроксимація кривих і метод найменших квадратів
Свайпніть щоб показати меню
Аппроксимація кривої — це фундаментальний інструмент аналізу даних, який дозволяє моделювати взаємозв'язок між змінними шляхом підбору математичної функції до спостережуваних точок даних. Визначаючи криву, яка найкраще описує ваші дані, можна робити прогнози, розуміти приховані тенденції та кількісно оцінювати взаємозв'язки. Аппроксимація кривої широко використовується в наукових дослідженнях, інженерії та економіці для таких завдань, як калібрування приладів, моделювання експериментальних даних і прогнозування.
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)
Після підбору моделі до ваших даних ви отримуєте оцінки параметрів, які найкраще описують основний зв'язок відповідно до обраної функції. Ці підібрані параметри можна інтерпретувати в контексті вашої моделі; наприклад, коефіцієнти в поліномі або швидкість у експоненційному спаді. Якість підгонки можна оцінити, аналізуючи залишки (різницю між спостережуваними та передбаченими значеннями), візуалізуючи підгонку та обчислюючи статистичні метрики, такі як сума квадратів залишків або коефіцієнт детермінації (R²). Розуміння значення цих оцінок параметрів і їхніх невизначеностей є ключовим для отримання надійних висновків з вашого аналізу.
1. Яка функція використовується для підбору кривих у SciPy?
2. Що мінімізує підбір методом найменших квадратів?
3. Як можна оцінити якість апроксимації кривої?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат