Как вычислить приближенное значение определенного интеграла в Wolfram|Alpha, используя численные методы решения интегралов

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

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

И если... вас интересует приближенное вычисление определенного интеграла по формуле трапеций (вычисление интегралов методом трапеций), нужен пример на метод Симпсона (метод Симпсона примеры решения), либо вы просто хотите знать, как решить интеграл методом Симпсона, срочно требуется метод Симпсона онлайн,  а также другое, связанное с приближенными методами вычислений определенных интегралов, вам определенно стоит дочитать этот пост до конца.

Вопрос про численное интегрирование уже обсуждался ранее, как раз в связи с вычислением "не берущихся" интегралов. По этому поводу был пост Численное интегрирование в Wolfram|Alpha, в котором приближенное вычисление определенного интеграла рассматривалось с точки зрения высшей математики. Здесь приближенное вычисление определенных интегралов будет рассмотрено более подробно с позиций прикладной математики.

Для начала, уточним, какие методы численного интегрирования (Numerical Integration Methods) используются чаще всего. Вот их названия: метод левых прямоугольников (left endpoint method), метод правых прямоугольников (right endpoint method), метод средних прямоугольников (midpoint method), метод трапеций (trapezoidal method), метод Симпсона (иначе, метод парабол) (Simpson's method) . Вместо "метод" также говорят "формула" или "правило", имея ввиду больше практический нежели теоретический аспект. Отсюда: формула левых прямоугольников (left endpoint rule), формула правых прямоугольников (right endpoint rule), формула средних прямоугольников (midpoint rule), формула трапеций (trapezoidal rule), формула Симпсона (формула парабол) (Simpson's rule). Конечно, есть и другие методы, например, метод Буля (Boole's rule)..

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


(Коэффициент 10 введен здесь "для красоты" и особого значения не имеет.)

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

plot sqrt((1+10x^2)/(1+x^4)) x=0..1



Как видим, подынтегральная функция определена и непрерывна на отрезке интегрирования (во всех точках), поэтому данный интеграл существует.

Во-вторых, в том, что данный интеграл действительно "не берущийся", т.е. не выражается в элементарных функциях, можно убедиться непосредственно, попытавшись найти неопределенный интеграл:

integrate sqrt((1+10x^2)/(1+x^4))dx



(Синтаксис запросов на вычисление определенных интегралов Wolfram|Alpha в  рассматривался нами ранее в посте Определенный интеграл в Wolfram|Alpha.)

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


В случае "не берущихся" интегралов, если обратиться к Wolfram|Alpha с обычным запросом integrate на вычисление определенного интеграла, система автоматически (на свое усмотрение) выбирает численный метод и выводит конечный результат без лишних подробностей. Для практических целей в большинстве случаев этого бывает достаточно:

integrate sqrt((1+10x^2)/(1+x^4))dx x=0..1



Однако, если ваша цель - использовать конкретный численный метод интегрирования, получить результат с заданной точностью, разбить отрезок интегрирования на заданное количество интервалов, сравнить разные численные методы интегрирования и т.п., то обычный запрос на вычисление определенных интегралов нужно дополнить параметрами (в квадратных скобках указаны обязательные параметры запроса, в круглых - не обязательные):

integrate [функция](dx) (метод численного интегрирования) (количество интервалов) [отрезок интегрирования] (точность, количество цифр)

Различные методы численного интегрирования, имеют разную точность, поэтому дают различные результаты. Убедимся в этом на данном примере.


1. Метод левых прямоугольников (left endpoint method):

integrate sqrt((1+10x^2)/(1+x^4))dx left endpoint method x=0..1



2. Метод правых прямоугольников (right endpoint method):

integrate sqrt((1+10x^2)/(1+x^4))dx right endpoint method x=0..1



3. Метод средних прямоугольников (midpoint method):

integrate sqrt((1+10x^2)/(1+x^4))dx midpoint method x=0..1



Обратите внимание, что во всех предыдущих случаях по умолчанию Wolfram|Alpha разбивает отрезок интегрирования на 5 интервалов.

4. Метод трапеций (trapezoidal rule):

integrate sqrt((1+10x^2)/(1+x^4))dx trapezoidal rule x=0..1



5. Метод Симсона (метод парабол) (Simpson's rule):

integrate sqrt((1+10x^2)/(1+x^4))dx Simpson's rule x=0..1



В двух последних случаях система Wolfram|Alpha по умолчанию "разбила" отрезок интегрирования на 1 интервал.

Кстати, метод Симпсона назван в честь английского математика Томаса Симпсона (Thomas Simpson):



Кроме пяти рассмотренных выше методов численного интегрирования, которые обычно изучаются в курсах прикладной математики для инженеров, система Wolfram|Alpha позволяет также вычислять приближенные значения определенных интегралов методом Буля (Boole's rule)

6. Метод Буля (Boole's rule):

integrate sqrt((1+10x^2)/(1+x^4))dx Boole's rule x=0..1



Подробности использования метода Буля для решения данного примера можно посмотреть, нажав ссылку "Show details":



Метод Буля назван в честь английского математика Джорджа Буля (George Boole):



Здесь система Wolfram|Alpha по умолчанию также "разбила" отрезок интегрирования на 1 интервал.

Последний параметр запроса integrate, который еще не был использован - количество интервалов, на которые разбивается отрезок интегрирования. Этот параметр влияет на точность результата.

Для примера, можно приближенно вычислить данный интеграл методом левых прямоугольников, разбив отрезок интегрирования на n=10 частей:

integrate sqrt((1+10x^2)/(1+x^4))dx left endpoint method with 10 intervals x=0..1



Как видим, результат, который выводит Wolfram|Alpha в данном случае, отличается от того, который был получен, когда количество интервалов система выбирала автоматически (по умолчанию).

В выдаче Wolfram|Alpha каждый раз присутствует таблица, которая позволяет сравнить результаты, которые дает каждый из основных численных методов интегрирования. В случае, когда отрезок интегрирования делится на 10 интервалов, имеем такие результаты:


Здесь видим, что самый точный результат дает метод Буля. Именно этот результат выводит Wolfram|Alpha, если в запросе integrate не указан метод интегрирования.

Наконец, в запросе integrate можно указать точность вычислений - количество цифр в ответе (по умолчанию Wolfram|Alpha выводит 7 знаков, включая десятичный разделитель):

integrate sqrt((1+10x^2)/(1+x^4))dx Boole's rule with 5 intervals x=0..1 to 18 digits


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


Таким образом, мы познакомились с тем, как вычислить приближенное значение определенного интеграла в Wolfram|Alpha, используя численные методы решения интегралов.

Надеюсь, этот материал будет вам полезен.

ShareThis