Министерство образования Украины Днепропетровский государственный университет ––––––––––––––––––––––––––––––––––––––––––––– Факультет прикладной математики Кафедра вычислительной механики и прочности конструкций КУРСОВАЯ РАБОТА по численным методам в механике на тему Вычисление кратных интегралов методом ячеек с автоматическим выбором шага Исполнитель: студент группы ПД-97-1 Коваленко А.В. Руководитель: профессор Мусияка В.Г. Днепропетровск 1999Содержание 1 Постановка задачи 2 2 Теоретическая часть 2 2.1 Понятие о кубатурных формулах 2 2.2 Метод ячеек 3 2.3 Последовательное интегрирование 5 2.4 Кубатурная формула типа Симпсона 6 2.5 Принципы построения программ с автоматическим выбором шага 8 3 Список использованной литературы 9 4 Практическая часть 9 4.1 Решение задачи 9 4.2 Блок-схема программы 10 4.3 Листинг программы 12 4.4 Результаты решения 13 1 Постановка задачи Найти при помощи метода ячеек значение интеграла , где – область, ограниченная функциями . 2 Теоретическая часть Рассмотрим K-мерный интеграл вида: (1) где - некоторая K-мерная точка. Далее для простоты все рисунки будут сделаны для случая K=2. 2.1 Понятие о кубатурных формулах Кубатурные формулы или, иначе формулы численных кубатур предназначены для численного вычисления кратных интегралов. Пусть функция определена и непрерывна в некоторой ограниченной области . В этой области выбирается система точек (узлов) . Для вычисления интеграла приближённо полагают: (2) Чтобы найти коэффициенты , потребуем точного выполнения кубатурной формулы (2) для всех полиномов (3) степень которых не превышает заданного числа . Для этого необходимо и достаточно, чтобы формула (2) была точной для произведения степеней . Полагая в (1) , будем иметь: (4) Таким образом, коэффициенты формулы (2), вообще говоря, могут быть определены из системы линейных уравнений (4). Для того чтобы система (4) была определённой, необходимо, чтобы число неизвестных было равно числу уравнений. В случае получаем:
2.2 Метод ячеек Рассмотрим K-мерный интеграл по пространственному параллелепипеду . По аналогии с формулой средних можно приближённо заменить функцию на её значение в центральной точке параллелепипеда. Тогда интеграл легко вычисляется: (5) Для повышения точности можно разбить область на прямоугольные ячейки (рис. 2). Приближённо вычисляя интеграл в каждой ячейке по формуле средних и обозначая через соответственно площадь ячейки и координаты её центра, получим: (6) Справа стоит интегральная сумма; следовательно, для любой непрерывной она сходится к значению интеграла, когда периметры всех ячеек стремятся к нулю. Оценим погрешность интегрирования. Формула (5) по самому её выводу точна для . Но непосредственной подстановкой легко убедиться, что формула точна и для любой линейной функции. В самом деле, разложим функцию по формуле Тейлора: (7) где , а все производные берутся в центре ячейки. Подставляя это разложение в правую и левую части квадратурной формулы (5) и сравнивая их, аналогично одномерному случаю легко получим выражение погрешности этой формулы: (8) ибо все члены разложения, нечётные относительно центра симметрии ячейки, взаимно уничтожаются. Пусть в обобщённой квадратурной формуле (6) стороны пространственного параллелепипеда разбиты соответственно на N1, N2, …, Nk равных частей. Тогда погрешность интегрирования (8) для единичной ячейки равна:
Суммируя это выражение по всем ячейкам, получим погрешность обобщённой формулы: (9) т.е. формула имеет второй порядок точности. При этом, как и для одного измерения, можно применять метод Рунге–Ромберга, но при одном дополнительном ограничении: сетки по каждой переменной сгущаются в одинаковое число раз. Обобщим формулу ячеек на более сложные области. Рассмотрим случай K=2. Легко сообразить, что для линейной функции формула типа (5) будет точна в области произвольной формы, если под S подразумевать площадь области, а под –координаты центра тяжести, вычисляемые по обычным формулам: (10) Разумеется, практическую ценность это имеет только для областей простой формы, где площадь и центр тяжести легко определяется; например, для треугольника, правильного многоугольника, трапеции. Но это значит, что обобщённую формулу (6) можно применять к областям, ограниченным ломаной линией, ибо такую область всегда можно разбить на прямоугольники и треугольники. Для области с произвольной границей формулу (6) применяют иным способом. Наложим на область сетку из K-мерных параллелепипедов (рис.3). Те ячейки сетки, все точки которых принадлежат области, назовём внутренними; если часть точек ячейки принадлежит области, а часть – нет, то назовём ячейку граничной. Объём внутренней ячейки равен произведению её сторон. Объёмом граничной ячейки будем считать объем той её части, которая попадает внутрь ; этот объём вычислим приближённо. Эти площади подставим в (6) и вычислим интеграл. Оценим погрешность формулы (6). В каждой внутренней ячейке ошибка составляет по отношению к значению интеграла по данной ячейке. В каждой граничной ячейке относительная ошибка есть , ибо центр ячейки не совпадает с центром тяжести входящей в интеграл части. Но самих граничных ячеек примерно в раз меньше, чем внутренних. Поэтому при суммировании по ячейкам общая погрешность будет , если функция дважды непрерывно дифференцируема; это означает второй порядок точности. Вычисление объёма граничной ячейки довольно трудоёмко, ибо требует определения положения границы внутри ячейки. Можно вычислять интегралы по граничным ячейкам более грубо или вообще не включать их в сумму (6). Погрешность при этом будет , и для хорошей точности потребуется более подробная сетка. Мы видели, что к области произвольной формы метод ячеек трудно применять; поэтому всегда желательно заменой переменных преобразовать область интегрирования в прямоугольный параллелепипед (это относится практически ко всем методам вычисления кратных интегралов). 2.3 Последовательное интегрирование Снова рассмотрим интеграл по K-мерной области, разбитой сеткой на ячейки (рис. 2). Его можно вычислить последовательным интегрированием:
Каждый однократный интеграл легко вычисляется на данной сетке по квадратурным формулам типа:
Последовательное интегрирование по всем направлениям приводит к кубатурным формулам, которые являются прямым произведением одномерных квадратурных формул: (11) Например, при K=2, если по каждому направлению выбрана обобщённая формула трапеций, а сетка равномерная, то веса кубатурной формулы равны соответственно для внутренних, граничных и угловых узлов сетки. Легко показать, что для дважды непрерывно дифференцируемых функций эта формула имеет второй порядок точности, и к ней применим метод Рунге–Ромберга. Вообще говоря, для разных направлений можно использовать квадратурные формулы разных порядков точности . Тогда главный член погрешности имеет вид:
Желательно для всех направлений использовать квадратурные формулы одинакового порядка точности. Можно подобрать веса и положение линий сетки так, чтобы одномерная квадратурная формула была точна для многочлена максимальной степени, т.е. была бы формулой Гаусса, тогда, для случая K=2: (12) где –нули многочленов Лежандра и соответствующие веса. Эти формулы рассчитаны на функции высокой гладкости и дают для них большую экономию в числе узлов по сравнению с более простыми формулами.
Произвольная область. Метод последовательного интегрирования можно применять к области произвольной формы, например, с криволинейной границей. Рассмотрим этот случай при K=2. Для этого проведём через область хорды, параллельные оси , и на них введём узлы, расположенные на каждой хорде так, как нам требуется (рис. 4). Представим интеграл в виде:
Сначала вычислим интеграл по вдоль каждой хорды по какой-нибудь одномерной квадратурной формуле, используя введённые узлы. Затем вычислим интеграл по ;