/
beeval
/
repository
Обзор
Документация
Войти
/
beeval
/
repository
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
ADII/4.py
40 строк
2 KB
beeval
upload files
06 окт 2025, 21:48
06 окт 2025, 21:48
c2bd329
Код
Авторство
О чём код?
import numpy as np import matplotlib.pyplot as plt from scipy.optimize import curve_fit # Функция, которой аппроксимируем данные def harmonic_function(tau, t0, A, phi0): T = 12 # Период колебаний (предположим, это месяцы) return t0 + A * np.cos((2*np.pi*tau/T) + phi0) # Искусственно сгенерированные данные (можно заменить своими реальными данными) months = np.linspace(0, 11, 12) # Временная шкала от 0 до 11 месяцев temperatures = [ 10, 12, 15, 18, 22, 25, 27, 26, 23, 19, 15, 12 # Пример реальных температур ] # Аппроксимация params, covariance = curve_fit(harmonic_function, months, temperatures) # Вывод найденных параметров t0, A, phi0 = params print(f"t0 = {t0:.2f}, A = {A:.2f}, φ0 = {phi0:.2f}") # Строим график оригинальной и аппроксимированной кривых fitted_curve = harmonic_function(months, *params) plt.plot(months, temperatures, 'o-', label="Данные") plt.plot(months, fitted_curve, '-', label="Аппроксимация") plt.xlabel("Время (месяцы)") plt.ylabel("Температура") plt.title("Аппроксимация температурных данных") plt.legend() plt.show() # Нахождение минимумов на графике minima_indices = np.where(np.diff(np.sign(np.gradient(fitted_curve))) > 0)[0] minimum_points = [(months[i], fitted_curve[i]) for i in minima_indices] print("Минимумы температуры:") for month, temp in minimum_points: print(f"В месяце {month}: {temp:.2f}°C")