|
Численное интегрирование функции двух переменных
Численное интегрирование функции двух переменных
2 Содержание - Введение
- 1. Постановка задачи
- 2. Математические и алгоритмические основы решения задачи
- 2.1 Понятие двойного интеграла
- 2.2 Геометрический смысл двойного интеграла
- 2.3 Метод ячеек
- 3. Функциональные модели решения задачи
- 4. Программная реализация решения задачи
- 5. Пример выполнения программы
- Заключение
- Список использованных источников и литературы
ВведениеПод численным интегрированием понимается интегрирование аналитических выражений с помощью методов приближенных численных методов, т.е. методов, сводящихся к выполнению конечного числа элементарных операций над числами.Возникновение задач интегрального исчисления связано с нахождением площадей и объемов. Ряд задач такого рода был решен математиками древней Греции. Античная математика предвосхитила идеи интегрального исчисления в значительно большей степени, чем дифференциального исчисления. Большую роль при решении таких задач играл исчерпывающий метод, созданный Евдоксом Книдским (ок.408 - ок.355 до н. э) и широко применявшийся Архимедом (ок.287 - 212 до н. э).Однако Архимед не выделил общего содержания интеграционных приемов и понятий об интеграле, а тем более не создал алгоритма интегрального исчисления. Ученые Среднего и Ближнего Востока в IX - XV веках изучали и переводили труды Архимеда на общедоступный в их среде арабский язык, но существенно новых результатов в интегральном исчислении они не получили.Деятельность европейских ученых в это время была еще более скромной. Лишь в XVI и XVII веках развитие естественных наук поставило перед математикой Европы ряд новых задач, в частности задачи на нахождение квадратур (задачи на вычисление площадей фигур), кубатур (задачи на вычисление объемов тел) и определение центров тяжести.Труды Архимеда, впервые изданные в 1544 (на латинском и греческом языках), стали привлекать широкое внимание, и их изучение явилось одним из важнейших отправных пунктов развития интегрального исчисления. Архимед предвосхитил многие идеи интегрального исчисления. Но потребовалось более полутора тысяч лет, прежде чем эти идеи нашли четкое выражение и были доведены до уровня исчисления.Математики XVII столетия, получившие многие новые результаты, учились на трудах Архимеда. Активно применялся и другой метод - метод неделимых, который также зародился в Древней Греции. Например, криволинейную трапецию они представляли себе составленной из вертикальных отрезков длиной f (x), которым тем не менее приписывали площадь, равную бесконечно малой величине f (x) dx. В соответствии с таким пониманием искомая площадь считалась равной суммеS = бесконечно большого числа бесконечно малых площадей. Иногда даже подчеркивалось, что отдельные слагаемые в этой сумме - нули, но нули особого рода, которые сложенные в бесконечном числе, дают вполне определенную положительную сумму.На такой кажущейся теперь по меньшей мере сомнительной основе И. Кеплер (1571 - 1630 гг.) в своих сочинениях "Новая астрономия" (1609 г) и "Стереометрия винных бочек" (1615 г) правильно вычислил ряд площадей (например площадь фигуры, ограниченной эллипсом) и объемов (тело резалось на бесконечно тонкие пластинки).Эти исследования были продолжены итальянскими математиками Б. Кавальери (1598 - 1647 годы) и Э. Торричелли (1608 - 1647 годы).В XVII веке были сделаны многие открытия, относящиеся к интегральному исчислению. Так, П. Ферма уже в 1629 году решил задачу квадратуры любой кривой y =, где n - целое (т.е. вывел формулу ), и на этой основе решил ряд задач на нахождение центров тяжести. И. Кеплер при выводе своих знаменитых законов движения планет, фактически опирался на идею приближенного интегрирования.И. Барроу (1603-1677 года), учитель Ньютона, близко подошел к пониманию связи интегрирования и дифференцирования. Большое значение имели работы по представлению функции в виде степенных рядов.Однако при всей значимости результатов, полученных математиками XVII столетия, исчисления еще не было. Необходимо было выделить общие идеи, лежащие в основе решения многих частных задач, а также установить связь операций дифференцирования и интегрирования, дающую достаточно точный алгоритм. Это сделали Ньютон и Лейбниц, открывшие независимо друг от друга факт, известный вам под названием формулы Ньютона - Лейбница. Тем самым окончательно оформился общий метод. Предстояло еще научиться находить первообразные многих функций, дать логические основы нового исчисления и т.п. Но главное уже было сделано: дифференциальное и интегральное исчисление создано.Методы математического анализа активно развивались в следующем столетии (в первую очередь следует назвать имена Л. Эйлера, завершившего систематическое исследование интегрирования элементарных функций, и И. Бернулли). В развитии интегрального исчисления приняли участие русские математики М.В. Остроградский (1801 - 1862 гг.), В.Я. Буняковский (1804 -1889 гг.), П.Л. Чебышев (1821 - 1894 гг.). Принципиальное значение имели, в частности, результаты Чебышева, доказавшего, что существуют интегралы, не выразимые через элементарные функции.Строгое изложение теории интеграла появилось только в прошлом веке. Решение этой задачи связано с именами О. Коши, одного из крупнейших математиков немецкого ученого Б. Римана (1826 - 1866 гг.), французского математика Г. Дарбу (1842 -1917).Ответы на многие вопросы, связанные с существованием площадей и объемов фигур, были получены с созданием К. Жорданом (1826 - 1922 гг.) теории меры.Различные обобщения понятия интеграла уже в начале нашего столетия были предложены французскими математиками А. Лебегом (1875 - 1941 гг.) и А. Данжуа (1884 - 1974) советским математиком А.Я. Хичиным (1894 - 1959 гг.).1. Постановка задачиЦель данной курсовой работы - реализация численного интегрирования функции двух переменных.Для некоторых подынтегральных функций интеграл можно вычислить аналитически или найти в справочниках. Однако в общем случае первообразная может быть не определена: либо первообразные не выражаются через элементарные функции, либо сами подынтегральные функции не являются элементарными. Это приводит к необходимости разработки приближенных методов вычисления определенных интегралов. Наиболее общеупотребительными приближенными методами вычисления одномерных определенных интегралов являются, так называемые, "классические" методы численного интегрирования: метод прямоугольников, метод ячеек, метод трапеций, метод парабол.Одним из простейших способов вычисления двойного интеграла является метод ячеек, основанный на суммировании элементарных площадей, на которые разбивается вся площадь под функцией.Для решения примеров воспользуемся пакетом Mathcad.Пример 1.Вычислить интеграл .Решение:Результат вычисленияПример 2.Вычислить интеграл .Решение:Результат вычисленияПример 3.Вычислить интеграл .Решение:Результат вычисления2. Математические и алгоритмические основы решения задачи2.1 Понятие двойного интегралаДвойной интеграл - это обобщение определенного интеграла на двумерный случай. Т.е. для определения понятия двойного интеграла используется функция, зависящая уже от двух переменных: f (x,y). Эта функция должна быть определена на некоторой, обладающей конечной площадью, области D плоскости X0Y. При этом граница области D должна состоять из конечного числа графиков непрерывных функций.Обозначение двойного интеграла2.2 Геометрический смысл двойного интегралаДля того, чтобы понять, что же представляет из себя двойной интеграл с геометрической точки зрения, давайте посмотрим на рисунок ниже.Рисунок 1 - Геометрический смысл двойного интегралаИтак, пусть в пространстве мы имеем некоторое тело (криволинейный цилиндр [в отличие от криволинейной трапеции в определенном интеграле]), ограниченное сверху поверхностью f (x,y), по бокам - некоторой цилиндрической поверхностью (образующие которой параллельны оси OZ), а снизу плоскостью X0Y.Не углубляясь особо в теорию, возьмем из нее главное: Геометрический смысл двойного интеграла: при неотрицательной функции f (x,y), двойной интеграл по области D представляет из себя объем криволинейного цилиндра, который построен на области D и ограничен сверху поверхностью z=f (x,y).2.3 Метод ячеекОдним из простейших способов численного интегрирования функции двух переменных является метод ячеек.Рассмотрим сначала случай, когда областью интегрирования G интеграла I= является прямоугольник: , .По теореме о среднем найдём среднее значение функции f (x,y): S= (b-a) (d-c). (1)Рисунок 2 - Метод ячеекБудем считать, что среднее значение приближённо равно значению функции в центре прямоугольника, т.е..Тогда из (1) получим выражение для приближённого вычисления двойного интеграла: (2)Точность этой формулы можно повысить, если разбить область G на прямоугольные ячейки ij (рис.1):xi-1 i (i=1,2,…,M),yi-1 i (j=1,2,…,N).Применяя к каждой ячейке формулу (3), получимGijf (x,y) dxdy () xiyi.Суммируя эти выражения по всем ячейкам, находим значение двойного интеграла:I,j) (3)В правой части стоит интегральная сумма; поэтому при неограниченном уменьшении периметров ячеек (или стягивания их в точки) эта сумма стремится к значению интеграла для любой непрерывной функции f (x,y). Можно показать, что погрешность такого приближения интеграла для одной ячейки оценивается соотношениемRijxiyj.Суммируя эти выражения по всем ячейкам и считая все их площади одинаковыми, получаем оценку погрешности метода ячеек в видеO (x2+y2).Таким образом, формула (3) имеет второй порядок точности. Для повышения точности можно использовать обычные методы сгущения узлов сетки. При этом по каждой переменной шаги уменьшают в одинаковое число раз, т.е. отношение M/N остаётся постоянным.Если область G непрямоугольная, то в ряде случаев её целесообразно привести к прямоугольному виду путём соответствующей замены переменных. Например, пусть область задана в виде криволинейного четырёхугольника: , . Данную область можно привести к прямоугольному виду с помощью замены, .Кроме того, формула (3) может быть обобщена и на случай более сложных областей.3. Функциональные модели решения задачиФункциональные модели решения задачи представлены на рисунках 3 - 5.Используемые обозначения:f - интегрируемая функция;ax - начальный предел интегрирования по x;bx - конечный предел интегрирования по x;ay - начальный предел интегрирования по y;by - конечный пределе интегрирования по y;g - количество ячеек;h1 - ширина ячейки;h2 - высота ячейки;S - площадь ячейки;I - интеграл от функции f;x, y - координаты центра ячейки.Рисунок 3 - Функциональная модель решения задачи для функции sum_deltРисунок 4 - Функциональная модель решения задачи для функции sum_deltРисунок 5 - Функциональная модель решения задачи для функции double_integral4. Программная реализация решения задачи;; функция вычисления интеграла(defun double_integral (ax bx ay by g f);; ширина ячейки(setq h1 (/ ( - bx ax) g));; высота ячейки(setq h2 (/ ( - by ay) g));; площадь ячейки(setq S (* h1 h2));; переменная для вычисления интеграла(setq I 0);; интегральная сумма(setq I (sum_delt ( - bx (/ h1 2)) (+ ay (/ h2 2)) ax bx ay by h1 h2 I f)));; вычисление суммы площадей ячеек(defun sum_delt (x y ax bx ay by h1 h2 I f)(cond( (>= y by) I)(T (sum_delt ( - bx (/ h1 2)) (+ y h2) ax bx ay by h1 h2 (delta_x x y ax h1 h2 I f) f))));; вычисление площади ячейки в точке x y(defun delta_x (x y ax h1 h2 I f)(cond( (<= x ax) I)(T (delta_x ( - x h1) y ax h1 h2 (+ I (* h1 h2 (funcall f x y))) f))));; подгружаем функцию и пределы интегрирования(load "D: \\function. txt");; вычисляем интеграл(setq I (double_integral a_x b_x a_y b_y count_dot (function f))); открываем файл для записи(setq output-stream (open " d: \\integral. txt": direction: output));; записываем результат интегрирования в файл(format output-stream "Integral = ~a" I); закрываем файл(close output-stream);; endФайл function. txt;; интегрируемая функция(defun f (x y)(+ ( - 1 x) (* y y)));; начальный предел по x(setq a_x 0.5);; конечный предел по x(setq b_x 1);; начальный предел по y(setq a_y - 3);; конечный предел по y(setq b_y 2);; количество ячеек(setq count_dot 100)5. Пример выполнения программыРисунок 6 - Входные данныеРисунок 7 - Выходные данныеРисунок 8 - Входные данныеРисунок 9 - Выходные данныеРисунок 10 - Входные данныеРисунок 11 - Выходные данныеЗаключениеПроблема повышения качества вычислений, как несоответствие между желаемым и действительным, существует и будет существовать в дальнейшем. Ее решению будет содействовать развитие информационных технологий, которое заключается как в совершенствовании методов организации информационных процессов, так и их реализации с помощью конкретных инструментов - сред и языков программирования.Итогом работы можно считать созданную функциональную модель реализации численного интегрирования функции двух переменных. Созданная функциональная модель и ее программная реализация могут служить органической частью решения более сложных задач.Список использованных источников и литературы1. Бронштейн И.Н. Справочник по математике для инженеров и учащихся втузов [Текст] / И.Н. Бронштейн, К.А. Семендяев. - М.: Наука, 2007. - 708с. 2. Васильев Ф.П. Численные методы решения экстремальных задач. [Текст] / Ф.П. Васильев - М.: Наука, 2002. - 415с. 3. Интегрирование [Электронный ресурс] - Режим доступа: http://integraly.ru/. 4. Калиткин Н.Н. Численные методы. [Электронный ресурс] / Н.Н. Калиткин. - М.: Питер, 2001. - 504с. 5. Численное интегрирование [Электронный ресурс] - Режим доступа: http://www.wikipedia.org/wiki/Численное_интегрирование. 6. Симанков В.С. Основы функционального программирования [Текст] / В.С. Симанков, Т.Т. Зангиев, И.В. Зайцев. - Краснодар: КубГТУ, 2002. - 160с. 7. Степанов П.А. Функциональное программирование на языке Lisp. [Электронный ресурс] / П.А. Степанов, А.В. Бржезовский. - М.: ГУАП, 2003. - 79c. 8. Хювенен Э. Мир Лиспа [Текст] / Э. Хювенен, Й. Сеппянен. - М.: Мир, 1990. - 460с.
|
|