DevGang
Авторизоваться

Как вычислить определенные и неопределенные интегралы в Python

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

Многие существенные математические операции часто связаны с определенными и неопределенными интегралами. В этой статье мы рассмотрим пример выполнения вычислений интегралов с помощью Python.

Как вычислить определенные интегралы с одной переменной

Установить SciPy

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

Вы можете сделать это, выполнив следующую команду в терминале:

pip install scipy

Чтобы вычислить определенные интегралы с одной переменной, нам нужно сначала импортировать quad из scipy.integrate. Это функция общего назначения, используемая для вычисления определенных интегралов с одной переменной.

from scipy.integrate import quad

Элементарные функции

Оттуда нам нужно определить подынтегральную функцию как функцию в Python.

Например, если бы мы хотели вычислить интеграл от х-квадрата, мы бы определили подынтегральную функцию как функцию Python следующим образом:

def integrand(x):
	return x**2

Как только мы определим подынтегральную функцию, мы можем вычислить определенный интеграл, используя счетверенную функцию следующим образом:

print(quad(integrand, 0, 1))
# (0.33333333333333337, 3.700743415417189e-15)

В приведенном выше коде 0 представляет собой нижний предел интегрирования, а 1 — верхний предел интегрирования. Их может быть любое другое число.

Результат интеграла x^2 от 0 до 1 с соответствующим кодом
Результат интеграла x^2 от 0 до 1 с соответствующим кодом

В этом примере мы вычисляем, что оценочный результат интеграла от 0 до 1 от X² составляет приблизительно 0,333 с абсолютной ошибкой примерно 3,7e-15.

Функция quad возвращает кортеж оценки определенного integrand, за которым следует абсолютная ошибка оценки.

Четверная функция, по сути, оценивает подынтегральную функцию при нескольких различных значениях между нашими пределами интегрирования, чтобы иметь возможность вычислить оценку интеграла.

Другой пример: если бы я хотел вычислить интеграл от (x+1)/x**2. Сначала мы определили бы его как функцию в Python и передали бы в функцию quad вместе с ограничениями интеграции:

from scipy.integrate import quad

def integrand(x):
	return(x+1)/x**2
    
print(quad(integrand, 1, 2))
# (1.1931471805599452, 1.3246594716242401e-14)
Результат интеграла (x+1)/x^2 от 1 до 2 с соответствующим кодом
Результат интеграла (x+1)/x^2 от 1 до 2 с соответствующим кодом


В этом примере мы вычисляем, что оценочный результат интеграла от 1 до 2 от x +1 по всему x-квадрату составляет приблизительно 1,19 с абсолютной ошибкой примерно 1,32e-14.

Другие общие функции

Если мы хотим использовать общие математические функции, такие как sin(x) или log(x), мы можем использовать другой пакет Python для научных вычислений — NumPy. Вы можете установить пакет с помощью следующей команды:

pip install numpy

Импортируя его, мы получаем доступ к этим общим функциям, которые мы можем использовать в нашем подынтегральном выражении:

from scipy.integrate import quad
from numpy import log, sin

def integrand(x):
	return log(sin(x))
    
print(quad(integrand, 0, 2))
# (-1.1022223889049558, 1.2237126744196256e-15)
Результат интеграла log(sin(x)) от 0 до 2 с соответствующим кодом
Результат интеграла log(sin(x)) от 0 до 2 с соответствующим кодом

В этом примере мы вычисляем, что оценочный результат интеграла от 0 до 2 от log(sin(x)) приблизительно равен -1,10 с абсолютной ошибкой примерно 1,22e-15.

Полный список математических функций, которые предоставляет NumPy, находится в их документации.

Как использовать константы

NumPy также предоставляет полезные константы, такие как e и pi, а также inf. Это представление с плавающей запятой положительной бесконечности. Мы можем использовать его для вычисления определенного интеграла, который сходится.

from scipy.integrate import quad
from numpy import inf, exp

def integrand(x):
  return exp(-x)
    
print(quad(integrand, 0, inf))
# (1.0000000000000002, 5.842606742906004e-11)
Результат интеграла e^x от 0 до бесконечности с соответствующим кодом
Результат интеграла e^x от 0 до бесконечности с соответствующим кодом

В этом примере мы вычисляем, что оценочный результат интеграла e, возведённого в -x от 0 до бесконечности, приблизительно равен 1,00 с абсолютной ошибкой примерно 5,84e-11.

Как вычислить интегралы от нескольких переменных

Двойные интегралы

Для вычисления двойных интегралов нам нужно импортировать функцию dblquad из scipy.integrate:

from scipy.integrate import dblquad

Мы определяем подынтегральную функцию аналогичным образом, чтобы определить ее с одной переменной, только на этот раз вместо этого мы указали два аргумента.

def integrand(y, x):
	return x*y**2

Затем мы можем вычислить определенный интеграл, используя функцию dblquad, заданную scipy.

Обратите внимание, что подынтегральное выражение — это функция, которая должна принимать y в качестве первого параметра и x в качестве второго параметра.

print(dblquad(integrand, 0, 1, 2, 4))
# (9.333333333333334, 2.0679162295394134e-13)
Результат интеграла (xy^2) dxdy от 2 до 4 для y и интеграла от 0 до 1 для x с соответствующим кодом
Результат интеграла (xy^2) dxdy от 2 до 4 для y и интеграла от 0 до 1 для x с соответствующим кодом

В этом примере мы подсчитали, что оценочный результат двойного интеграла x, умноженного на y², от x = 0 до 1 и от y = 2 до y = 4 составляет приблизительно 9,33 с абсолютной ошибкой примерно 2,07e-13.

Функция требует, чтобы мы передали подынтегральное выражение, нижний и верхний пределы интегрирования для x, а затем нижний и верхний пределы интегрирования для y.

Переменные пределы

Чтобы вычислить интегралы с переменными пределами, нам нужно определить функции нижнего и верхнего пределов интегрирования для y через x:

def upper_limit_y(x):
	return x**2
    
def lower_limit_y(x):
	return x
    
def integrand(y, x):
	return x+y
  
print(dblquad(integrand, 0, 2, lower_limit_y, upper_limit_y))

В этом примере мы вычисляем, что расчетный результат двойного интеграла x+y от x = 0 до x = 2 и от y = x до y = X² составляет приблизительно 3,2 с абсолютной ошибкой примерно 1,10e- 13.

Результат двойного интеграла (x+y) dydx от 0 до 2 для x и интеграла от x до x^2 для y с соответствующим кодом
Результат двойного интеграла (x+y) dydx от 0 до 2 для x и интеграла от x до x^2 для y с соответствующим кодом

Тройные интегралы

Для вычисления тройных интегралов мы можем использовать функцию tplquad:

from scipy.integrate import tplquad

def integrand(z, y, x):
	return z*(x+y+z)
    
print(tplquad(integrand, 0, 1, 4, 5, 0, 1))
# (2.8333333333333335, 3.6983326566167174e-14)

Функция требует, чтобы мы передали аналогичные аргументы, являющиеся верхним и нижним пределами интегрирования по x, y и z.

В этом примере мы рассчитываем, что предполагаемый результат тройного интеграла от z, умноженного на (x+y+z) от x = 0 до x = 1, y = 4 до y = 5 и от z = 0 до z = 1 составляет примерно 2,83 с абсолютной ошибкой 3,70e-14:

Результат тройного интеграла z(x+y+z) dxdydz от 0 до 1 для x, от 4 до 5 для y и от 0 до 1 для z с соответствующим кодом
Результат тройного интеграла z(x+y+z) dxdydz от 0 до 1 для x, от 4 до 5 для y и от 0 до 1 для z с соответствующим кодом

Как вычислить неопределенные интегралы с одной переменной

Чтобы вычислить неопределенные интегралы с одной переменной с помощью Python, нам нужно использовать библиотеку SymPy. Он используется для символьных вычислений и включает точные вычисления с использованием переменных. Чтобы установить его, установите модуль SymPy:

pip install sympy

После его установки мы можем импортировать Symbol и интегрировать методы из sympy:

from sympy import Symbol, integrate

Сначала нам нужно определить переменные, используемые в подынтегральной функции:

x = Symbol('x')

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

Например, если мы хотим интегрировать X² относительно x, мы можем определить подынтегральное выражение в Python как x**2:

print(integrate(x**2, x))
# (x**3)/3
Результат неопределенного интеграла от x^2
Результат неопределенного интеграла от x^2

В этом примере мы вычисляем интеграл от X², который является x³ над 3.

Обратите внимание, что SymPy не добавляет константу интегрирования, но это подразумевается.

SymPy также предоставляет другие общие функции, такие как sin(x) и exp(x), которые мы можем использовать.

Прежде чем использовать их, нам сначала нужно импортировать их из sympy:

from sympy import Symbol, integrate, sin

Затем, используя импортированную функцию sin, мы можем вычислить интеграл от sin(x).

x = Symbol('x')
print(integrate(sin(x), x))
# -cos(x)

В этом примере мы вычисляем интеграл от sin(x), который равен -cos(x):

Результат неопределенного интеграла sin(x)
Результат неопределенного интеграла sin(x)

Sympy предоставляет полный список математических функций, которые вы можете использовать в своей документации.

Краткое содержание

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

Мы использовали популярные библиотеки Python для научных вычислений и рассмотрели примеры вычисления интегралов.

Если вам нравится то, что я пишу, рассмотрите возможность подписки на мой канал YouTube.

Заключение:

Статья останется не доработанной. Но мы ее опубликуем. Необходимо исправить формулы с самом тексте, не могу столько времени уделить на это. Возможно на выходных.

Удачного кодирования!

Источник:

#Python
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу