Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lab8 / lab8

.py
Скачиваний:
1
Добавлен:
30.05.2025
Размер:
1.44 Кб
Скачать
import numpy as np
import matplotlib.pyplot as plt


class Line:
    def __init__(self, c0, c1):
        self.c0 = c0
        self.c1 = c1

    def formula(self, x):
        return self.c0 + self.c1 * x

    def fplot(self, x_min, x_max, num_points):
        x_values = np.linspace(x_min, x_max, num_points)
        y_values = self.formula(x_values)
        plt.plot(x_values, y_values, color='green', linestyle='-', marker='*')
        plt.xlabel('x')
        plt.ylabel('f(x)')
        plt.title(f'График функции f(x) = {self.c0} + {self.c1}*x')
        plt.grid(True)
        plt.show()


class Parabola(Line):
    def __init__(self, c0, c1, c2):
        super().__init__(c0, c1)
        self.c2 = c2

    def formula(self, x):
        return super().formula(x) + self.c2 * x**2

    def fplot(self, x_min, x_max, num_points):
        x_values = np.linspace(x_min, x_max, num_points)
        y_values = self.formula(x_values)
        plt.plot(x_values, y_values, color='blue', linestyle='--', marker='o')
        plt.xlabel('x')
        plt.ylabel('f(x)')
        plt.title(f'График функции f(x) = {self.c0} + {self.c1}*x + {self.c2}*x^2')
        plt.grid(False)
        plt.show()



if __name__ == "__main__":
    l = Line(5, 0.5)
    print(l.formula(4))  
    l.fplot(-5, 5, 2)

    p = Parabola(1, 2, 3)
    print(p.formula(4))  
    p.fplot(-5, 5, 5)