Правило Симпсона — это численный метод аппроксимации определенных интегралов. Это метод численного интегрирования, основанный на аппроксимации интегрируемой функции квадратичным полиномом. В этой статье мы рассмотрим, как реализовать правило Симпсона в Python.

Что такое правило Симпсона?

Правило Симпсона — это метод численного интегрирования, использующий квадратичные полиномы для аппроксимации интегрируемой функции. Он основан на том факте, что любая непрерывная функция может быть аппроксимирована квадратичным многочленом на малых интервалах.

Правило основано на идее, что интеграл от функции f(x) на интервале [a, b] можно аппроксимировать квадратичным полиномом, проходящим через точки (a, f(a)), (b, f (b)), и середина (m, f(m)), где m = (a+b)/2.

Формула правила Симпсона:

∫[a,b]f(x)dx ≈ (b-a)/6 * [f(a) + 4f(m) + f(b)]

где f(a) и f(b) — значения функции на концах интервала, а f(m) — значение функции в средней точке.

Реализация правила Симпсона в Python

Чтобы реализовать правило Симпсона в Python, мы можем определить функцию, которая принимает функцию f(x), интервал [a, b] и количество интервалов n:

ef simpsons_rule(f, a, b, n):
    h = (b - a) / n
    x = np.linspace(a, b, n+1)
    y = f(x)
    return h/3 * (y[0] + 4*np.sum(y[1:-1:2]) + 2*np.sum(y[2:-1:2]) + y[-1])

Давайте разберем, что происходит в этой функции:

Сначала мы вычисляем ширину каждого интервала h = (b — a) / n.
Затем мы создаем последовательность равноотстоящих точек x = [a, a+h, a+2h, …, b], используя функция linspace из NumPy.
Мы оцениваем функцию f(x) в каждой точке x, чтобы получить соответствующую последовательность значений функции y = [f(a), f(a+h), f(a+2h) , …, f(b)].
Наконец, мы используем формулу правила Симпсона для аппроксимации интеграла от f(x) на интервале [a, b].

Давайте проверим нашу функцию на простом примере. Рассмотрим функцию f(x) = x², и мы хотим аппроксимировать интеграл от f(x) на интервале [0, 1]. Мы можем использовать правило Симпсона с n = 4 интервалами:

def f(x):
    return x**2

a, b, n = 0, 1, 4
result = simpsons_rule(f, a, b, n)
print(result)

Это должно вывести значение 0,33333333333333333, которое является точным значением интеграла от f(x) по [0, 1].

Заключение

Правило Симпсона — мощный инструмент для численной аппроксимации определенных интегралов. В этой статье мы показали, как реализовать правило Симпсона в Python с помощью простой функции. Этот метод может быть полезен при работе со сложными интегралами, которые не могут быть решены аналитически, и обеспечивает быструю и точную аппроксимацию интеграла.