Московский физико-технический институт
Опубликован: 25.10.2007 | Доступ: свободный | Студентов: 3909 / 1192 | Оценка: 4.50 / 4.33 | Длительность: 24:00:00
ISBN: 978-5-9556-0065-9
Специальности: Программист, Математик
Лекция 8:

Численное интегрирование

Аннотация: Исследуются простейшие квадратурные формулы интерполяционного типа — прямоугольников, трапеций, Симпсона. Для оценки реальной погрешности формул используется правило Рунге. Дается понятие о квадратурных формулах Гаусса. Рассматриваются методы вычисления многомерных интегралов.

Введение

В данной лекции будет рассматриваться задача численного интегрирования. Формулы численного интегрирования функций одного переменного называют квадратурными формулами. Задача приближенного вычисления определенного интеграла (на отрезке или по многомерной области) фактически разбивается на две самостоятельные подзадачи. Первая — это интегрирование таблично заданной функции (полученной, например, при проведении лабораторного эксперимента). В таком случае априорная информация о гладкости подынтегральной функции отсутствует, весьма ограничены возможности в выборе узлов интегрирования. Для этой задачи наиболее эффективными будут квадратурные формулы интерполяционного типа и правило Рунге оценки погрешности.

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

7.1. Квадратурные формулы интерполяционного типа (формулы Ньютона - Котеса)

Простейшую квадратурную формулу (формулу численного интегрирования) можно получить следующим образом. Пусть необходимо вычислить интеграл

I = \int\limits_{a}^{b}{f(t)}dt.

Положим, что f(t) на рассматриваемом отрезке [a, b] не изменяется ( f(t) \approx  const ). Тогда I = f(\xi )(b - a), \xi  \in \left[{a, b}\right]. Если

$  \xi = \frac{a + b}{2}  $,
то получим формулу прямоугольников с центральной точкой

$  I  \approx  (b - a) \cdot f(\frac{a + b}{2})  . $

Конечно, для константы приведенная выше формула точна — говорят, что построенная квадратурная формула будет точна на полиномах степени 0. Легко можно доказать, что формула прямоугольников с центральной точкой будет давать точное значение и в случае линейной функции. Для всех других функций эту формулу будем рассматривать как приближенную.

Если предположить, что функция f(t) на отрезке интегрирования [a, b] достаточно близка к линейной, то можно заменить приближенное значение интеграла i площадью трапеции с высотой (b - a) и основаниями f(a) и f(b). Тогда получается формула трапеций

$  I  \approx  (b - a)\frac{f(a) + f(b)}{2}  . $

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

Введем на отрезке интегрирования сетку, определим значения функции в узлах сетки. Узлы в дальнейшем будем именовать узлами квадратурной формулы (или квадратуры). Пусть, как и в задаче интерполяции, имеется совокупность узлов \left\{{t_n}\right\}_{n = 0}^{N}, t_n = a + n{\tau}, {\tau}= (b - a)/{N}, t \in \left[{a, b}\right]. Пусть также задана таблица f_n = \left\{{f(t_n)}\right\}_{n = 0}^{N}. Отрезок [tk, tk + 1] далее иногда будем называть элементарным отрезком.

Заменим подынтегральную функцию ее интерполяционным полиномом в форме Лагранжа. Будем полагать, что

\int\limits_{a}^{b}{f(t)} dt  \approx  \int\limits_{a}^{b}{L_n} (t)dt.

Рассмотрим некоторые частные случаи.

Формула трапеций. На отрезке [tk, tk + 1] проводим замену подынтегральной функции интерполяционным полиномом первой степени:

$  f(t)  \approx  f(t_k) + \frac{f(t_{k + 1}) - f(t_k)}{t_{k + 1} - t_k}(t - t_k),   $

после чего, выполнив интегрирование по элементарному отрезку, получим приближенное значение интеграла на [tk, tk + 1]:

$  I_k   \approx  \frac{1}{2}(t_{k + 1} - t_k)\left[{f(t_{k + 1}) + f(t_k)}\right] = \frac{{\tau_k}}{2}\left[{f(t_{k + 1}) + f(t_k)}\right].  $

После суммирования интегралов по всем элементарным отрезкам [tk, tk + 1] получаем формулу трапеций для отрезка [a, b]:

\begin{gather*}
I  \approx  \sum\limits_{k = 0}^{N - 1}{I_k} = \frac{1}{2}\sum\limits_{k = 0}^{N - 1}{\tau_k} \left[{f(t_k) + f(t_{k + 1})}\right], \\
\tau_k = t_{k + 1} - t_k , \quad k = 0  \div  N;\quad \sum\limits_{k = 0}^{N - 1}{\tau_k} = b - a. 
\end{gather*}
  $

На равномерной сетке (сетке с равноотстоящими узлами) при \tau _{k}  = \tau  = (b - a)/N полученная формула принимает вид

$  I  \approx  \frac{{\tau}}{2}\sum\limits_{k = 0}^{N - 1}{\left[{f(t_k) + f(t_{k + 1})}\right]} = \frac{{\tau}}{2}\left[{f(t_0 ) + 2f(t_1 ) + \ldots + 2f(t_{N - 1}) + f(t_N)}\right].   $