import math
def f(x):
return 1 / (1 + x**4)
a = 0
b = 4
n = 100 # количество разбиений
# шаг
h = (b - a) / n
# Метод левых прямоугольников
def left_rectangles(a, b, n):
h = (b - a) / n
s = 0
for i in range(n):
x = a + i * h
s += f(x)
return h * s
# Метод правых прямоугольников
def right_rectangles(a, b, n):
h = (b - a) / n
s = 0
for i in range(1, n + 1):
x = a + i * h
s += f(x)
return h * s
# Метод средних прямоугольников
def middle_rectangles(a, b, n):
h = (b - a) / n
s = 0
for i in range(n):
x = a + h * (i + 0.5)
s += f(x)
return h * s
# Метод трапеций
def trapezoid(a, b, n):
h = (b - a) / n
s = (f(a) + f(b)) / 2
for i in range(1, n):
x = a + i * h
s += f(x)
return h * s
# Метод Симпсона
def simpson(a, b, n):
if n % 2 != 0:
n += 1
h = (b - a) / n
s = f(a) + f(b)
for i in range(1, n):
x = a + i * h
if i % 2 == 0:
s += 2 * f(x)
else:
s += 4 * f(x)
return h * s / 3
print("Интеграл от 0 до 4 функции 1/(1+x^4)")
print("-" * 45)
print(f"Метод левых прямоугольников: {left_rectangles(a, b, n):.10f}")
print(f"Метод правых прямоугольников: {right_rectangles(a, b, n):.10f}")
print(f"Метод средних прямоугольников: {middle_rectangles(a, b, n):.10f}")
print(f"Метод трапеций: {trapezoid(a, b, n):.10f}")
print(f"Метод Симпсона: {simpson(a, b, n):.10f}")