import numpy as np import matplotlib.pyplot as plt class zadacha1: def __init__(self): pass # Конструктор пока пустой, при необходимости можно добавить параметры # Метод для генерации линейного массива данных def create_lin_array(self, b0=2, b1=4, N=500, noise_std=10): """ Генерация массива данных по линейной зависимости Y = b0 + b1 * X + error :param b0: свободный коэффициент :param b1: коэффициент при X :param N: количество точек данных :param noise_std: стандартное отклонение для случайной ошибки :return: массивы X и Y """ X = np.linspace(1, 500, N) # создаем массив X с равномерным шагом error = np.random.normal(0, noise_std, N) # генерируем шум Y = b0 + b1 * X + error # генерируем Y по линейному закону return X, Y # Метод для генерации квадратичного массива данных def create_sqr_array(self, a=1, b=3, c=2, N=500, noise_std=10): """ Генерация массива данных по квадратичной зависимости Y = a * X^2 + b * X + c + error :param a: коэффициент при X^2 :param b: коэффициент при X :param c: свободный коэффициент :param N: количество точек данных :param noise_std: стандартное отклонение для случайной ошибки :return: массивы X и Y """ X = np.linspace(1, 500, N) # создаем массив X error = np.random.normal(0, noise_std, N) # генерируем шум Y = a * X**2 + b * X + c + error # генерируем Y по квадратичному закону return X, Y # Метод для отображения графика линейных данных def plot_lin_data(self, b0=2, b1=4, N=500, noise_std=10): """ Отображение сгенерированных линейных данных и теоретической линии """ X, Y = self.create_lin_array(b0, b1, N, noise_std) # Генерация данных plt.scatter(X, Y) # График рассеяния plt.plot(X, b0 + b1 * X, color='red') # Линейная функция без шума plt.title("Линейная зависимость с шумом") plt.show() # Метод для отображения графика квадратичных данных def plot_sqr_data(self, a=1, b=3, c=2, N=500, noise_std=10): """ Отображение сгенерированных квадратичных данных и теоретической кривой """ X, Y = self.create_sqr_array(a, b, c, N, noise_std) # Генерация данных plt.scatter(X, Y) # График рассеяния plt.plot(X, a * X**2 + b * X + c, color='red') # Квадратичная функция без шума plt.title("Квадратичная зависимость с шумом") plt.show()