Загрузка данных


import numpy as np
import matplotlib.pyplot as plt

# 1. Определение функции и пределов
def f(x):
    # np.maximum защищает от отрицательных значений под корнем
    return np.power(np.maximum(4 - 25*x**2, 0), 1.5)

a, b = 0.2, 0.4
n = 10  # Количество разбиений по заданию

# 2. Подготовка данных для графика самой функции (плавная линия)
x_plot = np.linspace(a - 0.05, b + 0.05, 400)
y_plot = f(x_plot)

# 3. Подготовка данных для прямоугольников (ЛПР)
x_edges = np.linspace(a, b, n + 1)
x_left = x_edges[:-1]  # Берем левые границы интервалов
y_left = f(x_left)     # Значение функции на левых границах

# 4. Отрисовка
plt.figure(figsize=(10, 6))

# Рисуем саму функцию
plt.plot(x_plot, y_plot, 'r', linewidth=2, label=r'$f(x) = \sqrt{(4 - 25x^2)^3}$')

# Рисуем прямоугольники
# align='edge' означает, что координата x_left будет левым краем прямоугольника
plt.bar(x_left, y_left, width=(b-a)/n, alpha=0.3, align='edge', 
        color='blue', edgecolor='black', label=f'Левые прямоугольники (n={n})')

# Добавляем точки вычисления для наглядности
plt.plot(x_left, y_left, 'ko', label='Точки вычисления (Левые)')

# Оформление графика
plt.axhline(0, color='black', lw=1)
plt.title(f'График функции f(x) с наложенными фигурами ЛПР (n={n})')
plt.xlabel('x')
plt.ylabel('f(x)')
plt.legend()
plt.grid(True, linestyle='--', alpha=0.7)

# Показать график
plt.show()