Интеграл гаусса. Функциональные модели решения задачи. Математические и алгоритмические основы решения задачи

КУРСОВАЯ РАБОТА

“Численное интегрирование методом Гаусса”


Федеральное агентство по образованию

Тульский государственный университет

КАФЕДРА РАДИОЭЛЕКТРОНИКИ

ИНФОРМАТИКА

ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ

Вариант № 42

Студенту гр.220371 Подобеденко И.В.

1. Тема: "Численное интегрирование-методом Гаусса"

Разработайте алгоритм и программу:

1) вычисления определённого интеграла методом Гаусса и 2) построения графика функции я 3) построения нескольких (по 2 - 3) “шагов” интегрирования на участках возрастания и убывания функции.

Контрольный пример.

Исходные данные:

4. Требования к курсовой работе:

3.1 Разработать алгоритм и программу решения поставленной задачи.

3.2 Язык программирования - Паскаль.

3.3 Предусмотреть: а) диалоговый ввод исходных данных с проверкой правильности вводимых величин, б) блок пояснений к работе с программой, в) решение контрольного примера.

5. Форма отчётности:

пояснительная записка (ПЗ) объёмом 25-40 страниц на листах с рамками и штампом, отпечатанная на принтере,

графическая часть - лист формата А1,

дискета с текстом ПЗ, рисунком алгоритма и программой (текстовый и исполняемый файлы).

1) титульный лист,

2) задание на курсовую работу (настоявши бланк).

3) аннотация (краткая характеристика проделанной работы, объём ПЗ, количество таблиц, рисунков, схем. программ и приложений) с основной надписью по форме 2 (ГОСТ 2.104-68) - 1 с,

5) введение (область применения поставленной задачи, возможность использования ЭВМ для решения поставленной задачи) – 1-2 с,

6) анализ задания (выбор входных и выходных данных) – 2-3 с.

7) обзор литературных источников и разработка (выбор) математической модели задачи – 2-4 с,

8) описание методов вычислительной математики, которые будут использованы при решении поставленной задачи - 3-4 с,

9) разработка алгоритма решения задачи и описание его особенностей (разработанных или выбранных из готовых процедур и функций) - 5-7 с,

10) разработка программы по схеме алгоритма - 1-2 с.

11) разработка инструкции пользования программой - 1 с.

12) распечатка программы (текстовый файл) – допускается привести как приложение – 2-3 страницы

13) распечатка исходных данных и результатов решения контрольного примера – 1-2 с.

14) заключение (подробные выводы по проделанной работе) – 1-2 с.

15) список использованной литературы – 1 с.

16) приложения (инструкции пользования программой и др.)

7. Графическая часть: алгоритм решения поставленной задачи – лист формата A1

8. Литература.

Аннотация

В работе рассмотрены методы численного интегрирования функций. Для подробного рассмотрения был взят метод Гаусса.

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

Объем работы – 23 листа, количество рисунков – 2, представлена одна программа.

Содержание

Аннотация. 4

Введение. 6

1. Анализ задания. 8

2. Выбор математической модели задачи. 10

2.1 Метод прямоугольников. 10

2.2 Метод парабол (метод Симпсона) 11

2.4 Увеличение точности. 11

2.5 Метод Гаусса. 12

2.6 Метод Гаусса-Кронрода. 12

3. Описание методов вычислительной математики, которые будут использованы при решении поставленной задачи. 14

3.1. Разработка алгоритма решения задачи и описание его особенностей 15

3.2 Разработка программы по схеме алгоритма. 18

3.3 Разработка инструкции пользования программой. 19

3.4 Распечатка программы.. 19

3.5 Распечатка исходных данных и результатов решения контрольного примера 26

Заключение. 27

Список использованной литературы.. 28

Введение

Появление и непрерывное совершенствование быстродействующих электронных вычислительных машин (ЭВМ) привело к подлинно революционному преобразованию пауки вообще и математики в особенности. Изменилась технология научных исследований, колоссально увеличились возможности теоретического изучения, прогноза сложных процессов, проектирования инженерных конструкций. Решение крупных научно-технических проблем, примерами которых могут служить проблемы овладения ядерной энергией и освоения космоса, стало возможным лишь благодаря применению математического моделирования и новых численных методов, предназначенных для ЭВМ.

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

Численные методы дают приближенное решение задачи. Это значит, что вместо точного решения и (функции или функционала) некоторой задачи мы находим решение у другой задачи, близкое в некотором смысле (например, по норме) к искомому. Основная идея всех методов - дискретизация или аппроксимация (замена, приближение) исходной задачи другой задачей, более удобной для решения на ЭВМ, причем решение аппроксимирующей задачи зависит от некоторых параметров, управляя которыми, можно определить решение с требуемой точностью. Например, в задаче численного интегрирования такими параметрами являются узлы и веса квадратурной формулы. Далее, решение дискретной задачи является элементом конечномерного пространства.

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

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

1. Анализ задания

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

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

Пусть функция задана на интервале

. Задача состоит в том, чтобы подобрать точки и коэффициенты так, чтобы квадратурная формула (3.1)

была точной для всех полиномов наивысшей возможной степени.

Введение

1. Постановка задачи

2.1 Метод прямоугольников

2.2 Метод трапеций

2.3 Метод парабол (метод Симпсона)

2.4 Увеличение точности

2.5 Метод Гаусса

2.6 Метод Гаусса-Кронрода

Заключение

Список использованных источникови литературы

Введение

Появление и непрерывное совершенствование быстродействующих электронных вычислительных машин (ЭВМ) привело к подлинно революционному преобразованию науки вообще и математики в особенности. Изменилась технология научных исследований, колоссально увеличились возможности теоретического изучения, прогноза сложных процессов, проектирования инженерных конструкций. Решение крупных научно-технических проблем, примерами которых могут служить проблемы овладения ядерной энергией и освоения космоса, стало возможным лишь благодаря применению математического моделирования и новых численных методов, предназначенных для ЭВМ.

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

Численные методы дают приближенное решение задачи. Это значит, что вместо точного решения и (функции или функционала) некоторой задачи мы находим решение у другой задачи, близкое в некотором смысле (например, по норме) к искомому. Основная идея всех методов - дискретизация или аппроксимация (замена, приближение) исходной задачи другой задачей, более удобной для решения на ЭВМ, причем решение аппроксимирующей задачи зависит от некоторых параметров, управляя которыми, можно определить решение с требуемой точностью. Например, в задаче численного интегрирования такими параметрами являются узлы и веса квадратурной формулы. Далее, решение дискретной задачи является элементом конечномерного пространства.

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

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

1. Постановка задачи

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

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

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

Интерполяция - в вычислительной математике способ нахождения промежуточных значений величины по имеющемуся дискретному набору известных значений.

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

Существует также близкая к интерполяции задача, которая заключается в аппроксимации какой-либо сложной функции другой, более простой функцией. Если некоторая функция слишком сложна для производительных вычислений, можно попытаться вычислить её значение в нескольких точках, а по ним построить, то есть интерполировать, более простую функцию. Разумеется, использование упрощенной функции не позволяет получить такие же точные результаты, какие давала бы первоначальная функция. Но в некоторых классах задач достигнутый выигрыш в простоте и скорости вычислений может перевесить получаемую погрешность в результатах.

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

Для решения нашей задачи необходимо предусмотреть ввод необходимых данных и реализацию контрольно примера.

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

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

Вычислим интеграл методом Гаусса.

.

Ответ: 3.584.

Вычислим интеграл методом Гаусса.

.

Ответ: - 0.588.

2. Математические и алгоритмические основы решения задачи

Кратко рассмотрим основные методы численного интегрирования и выясним, почему самый лучший и быстрый метод интегрирования - десятиточечный метод Гаусса.

2.1 Метод прямоугольников

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

где , или , соответственно.

2.2 Метод трапеций

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

Площадь трапеции на каждом отрезке:

Погрешность аппроксимации на каждом отрезке:

,

.

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

, где

Погрешность формулы трапеций:

, где

2.3 Метод парабол (метод Симпсона)

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

Если разбить интервал интегрирования на 2N равных частей, то имеем

где .

2.4 Увеличение точности

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

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

При стремлении количества разбиений к бесконечности, оценка интеграла стремится к его истинному значению для любого численного метода.

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

2.5 Метод Гаусса

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

В общем случае, используя точек, можно получить метод с порядком точности . Значения узлов метода Гаусса по точкам являются корнями полинома Лежандра степени .

Значения узлов метода Гаусса и их весов приводятся в справочниках специальных функций. Наиболее известен метод Гаусса по пяти точкам.

2.6 Метод Гаусса-Кронрода

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

,

где - узлы метода Гаусса по точкам, а параметров , , подобраны таким образом, чтобы порядок точности метода был равен .

Тогда для оценки погрешности можно использовать эмпирическую формулу:

где - приближённое значение интеграла, полученное методом Гаусса по точкам.

3. Функциональные модели решения задачи

Функциональные модели решения задачи представлены на рисунках 1 и 2.

Используемые обозначения:

g10c1, g10c2, g10c3, g10c4, g10c5 - константы десятиточечного метода Гаусса;

g10x1, g10x2, g10x3, g10x4, g10x5 - константы десятиточечного метода Гаусса;

m, n- вспомогательные переменные;

s1, s2, s3, s4, s5, s- вспомогательные переменные;

a, b - пределы интегрирования;

f - интегрируемая функция;

gc- посчитанный интеграл на интервале (a, b);

ga, gb- переменные для подсчета интеграла на половине интервала;

eps - точность интегрирования;

k - вспомогательная переменная.


Рисунок 1 - Функциональная модель решения задачи десятиточечного метода Гаусса, реализованная методом Gaus_Calc

Рисунок 2 - Функциональная модель решения задачи для функции Gaus

4. Программная реализация решения задачи

;; интегрируемая функция

( defun F (x)

;; 1 пример

;; (/ (* 2 (expt x 3)) (expt x 4))

;; 2 пример

;; (* 3.142 (sin (* 3.142 x)))

;; 3 пример

( * (/ (log (+ x 1)) x) (exp (* - 1 x)))

;; десятиточечный метод Гаусса

( defun Gauss_Calc (a b f)

(setq g10c1 (/ 0.9739065285 6.2012983932))

(setq g10c2 (/ 0.8650633667 6.2012983932))

(setq g10c3 (/ 0.6794095683 6.2012983932))

(setq g10c4 (/ 0.4333953941 6.2012983932))

(setq g10c5 (/ 0.1488743390 6.2012983932))

(setq g10x1 (/ 0.0666713443 6.2012983932))

(setq g10x2 (/ 0.1494513492 6.2012983932))

(setq g10x3 (/ 0.2190863625 6.2012983932))

(setq g10x4 (/ 0.2692667193 6.2012983932))

(setq g10x5 (/ 0.2955242247 6.2012983932))

(setq m (/ (+ b a) 2))

(setq n (/ ( - b a) 2))

(setq s1 (* g10c1 (+ (funcall f (+ m (* n g10x1))) (funcall f ( - m (* n g10x1))))))

(setq s2 (* g10c2 (+ (funcall f (+ m (* n g10x2))) (funcall f ( - m (* n g10x2))))))

(setq s3 (* g10c3 (+ (funcall f (+ m (* n g10x3))) (funcall f ( - m (* n g10x3))))))

(setq s4 (* g10c4 (+ (funcall f (+ m (* n g10x4))) (funcall f ( - m (* n g10x4))))))

(setq s5 (* g10c5 (+ (funcall f (+ m (* n g10x5))) (funcall f ( - m (* n g10x5))))))

(setq s (+ s1 s2 s3 s4 s5))

(* s ( - b a))

;; рекурсивная ф-ция подсчета с заданной точностью

;; gc - ранее посчитаный интеграл на интервале (a,b)

( defun Gauss (a b eps gc f)

;; разбиваем интервал на две половины

( setq k (/ (+ a b) 2))

;; в каждой половине считаем интеграл

( setq ga (Gauss_Calc a (/ (+ a b) 2) f))

(setq gb (Gauss_Calc (/ (+ a b) 2) b f))

(if (> (abs ( - (+ ga gb) gc)) eps)

(setq ga (Gauss a (/ (+ a b) 2) (/ eps 2) (Gauss_Calc a (/ (+ a b) 2) f) f))

(+ ga (Gauss (/ (+ a b) 2) b (/ eps 2) (Gauss_Calc (/ (+ a b) 2) b f) f))

(+ ga gb)

;; открываем файл для чтения

( setq input-stream (open " d: \\predel. txt": direction: input))

(setq a (read input-stream))

(setq b (read input-stream))

(setq eps (read input-stream))

(close input-stream)

;; находим интеграл

( setq integral (Gauss a b eps (Gauss_Calc a b (function F)) (function F)))

;; открываем файл для записи

( setq output-stream (open " d: \\test. txt": direction: output))

(format output-stream "Integral = ~a" integral)

(close output-stream)

5. Пример выполнения программы

Рисунок 3 - Пределы интеграла и точность вычисления для интегрируемой функции

Рисунок 4 - Результат вычисления интеграла функции с заданными пределами и точностью вычисления

Рисунок 5 - Пределы интеграла и точность вычисления для интегрируемой функции

Рисунок 6 - Результат вычисления интеграла функции с заданными пределами и точностью вычисления

Рисунок 7 - Пределы интеграла и точность вычисления для интегрируемой функции

Рисунок 8 - Результат вычисления интеграла функции с заданными пределами и точностью вычисления

Заключение

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

1. Бронштейн И.Н. Справочник по математике для инженеров и учащихся втузов [Текст] / И.Н. Бронштейн, К.А. Семендяев. - М.: Наука, 2007. - 708 с.

2. Кремер Н.Ш. Высшая математика для экономистов: учебник для студентов вузов. [Текст] / Н.Ш. Кремер, 3-е издание - М.: ЮНИТИ-ДАНА, 2006. C.412.

3. Калиткин Н.Н. Численные методы. [Электронный ресурс] / Н.Н. Калиткин. - М.: Питер, 2001. С.504.

4. Численное интегрирование [Электронный ресурс] - Режим доступа: http://ru. wikipedia.org/wiki/Численное_интегрирование

5. Семакин И.Г. Основы программирования. [Текст] / И.Г. Семакин, А.П. Шестаков. - М.: Мир, 2006. C.346.

6. Симанков В.С. Основы функционального программирования [Текст] / В.С. Симанков, Т.Т. Зангиев, И.В. Зайцев. - Краснодар: КубГТУ, 2002. - 160 с.

7. Степанов П.А. Функциональное программирование на языке Lisp. [Электронный ресурс] / П.А. Степанов, А.В. Бржезовский. - М.: ГУАП, 2003. С.79.

8. Хювенен Э. Мир Лиспа [Текст] / Э. Хювенен, Й. Сеппянен. - М.: Мир, 1990. - 460 с.

Введение

1. Постановка задачи

2.1 Метод прямоугольников

2.2 Метод трапеций

2.4 Увеличение точности

2.5 Метод Гаусса

2.6 Метод Гаусса-Кронрода

Заключение


Введение

Появление и непрерывное совершенствование быстродействующих электронных вычислительных машин (ЭВМ) привело к подлинно революционному преобразованию науки вообще и математики в особенности. Изменилась технология научных исследований, колоссально увеличились возможности теоретического изучения, прогноза сложных процессов, проектирования инженерных конструкций. Решение крупных научно-технических проблем, примерами которых могут служить проблемы овладения ядерной энергией и освоения космоса, стало возможным лишь благодаря применению математического моделирования и новых численных методов, предназначенных для ЭВМ.

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

Численные методы дают приближенное решение задачи. Это значит, что вместо точного решения и (функции или функционала) некоторой задачи мы находим решение у другой задачи, близкое в некотором смысле (например, по норме) к искомому. Основная идея всех методов - дискретизация или аппроксимация (замена, приближение) исходной задачи другой задачей, более удобной для решения на ЭВМ, причем решение аппроксимирующей задачи зависит от некоторых параметров, управляя которыми, можно определить решение с требуемой точностью. Например, в задаче численного интегрирования такими параметрами являются узлы и веса квадратурной формулы. Далее, решение дискретной задачи является элементом конечномерного пространства.

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

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


1. Постановка задачи

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

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

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

Интерполяция - в вычислительной математике способ нахождения промежуточных значений величины по имеющемуся дискретному набору известных значений.

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

Существует также близкая к интерполяции задача, которая заключается в аппроксимации какой-либо сложной функции другой, более простой функцией. Если некоторая функция слишком сложна для производительных вычислений, можно попытаться вычислить её значение в нескольких точках, а по ним построить, то есть интерполировать, более простую функцию. Разумеется, использование упрощенной функции не позволяет получить такие же точные результаты, какие давала бы первоначальная функция. Но в некоторых классах задач достигнутый выигрыш в простоте и скорости вычислений может перевесить получаемую погрешность в результатах.

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

Для решения нашей задачи необходимо предусмотреть ввод необходимых данных и реализацию контрольно примера.

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

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

Вычислим интеграл методом Гаусса.

.

Ответ: 3.584.

Вычислим интеграл методом Гаусса.

.

Ответ: - 0.588.


2. Математические и алгоритмические основы решения задачи

Кратко рассмотрим основные методы численного интегрирования и выясним, почему самый лучший и быстрый метод интегрирования - десятиточечный метод Гаусса.

2.1 Метод прямоугольников

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

где , или , соответственно.

2.2 Метод трапеций

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

Площадь трапеции на каждом отрезке:

Погрешность аппроксимации на каждом отрезке:

,

.

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

, где

Погрешность формулы трапеций:

, где

2.3 Метод парабол (метод Симпсона)

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

Если разбить интервал интегрирования на 2N равных частей, то имеем

где .

2.4 Увеличение точности

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

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

При стремлении количества разбиений к бесконечности, оценка интеграла стремится к его истинному значению для любого численного метода.

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

2.5 Метод Гаусса

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

В общем случае, используя точек, можно получить метод с порядком точности . Значения узлов метода Гаусса по точкам являются корнями полинома Лежандра степени .

Значения узлов метода Гаусса и их весов приводятся в справочниках специальных функций. Наиболее известен метод Гаусса по пяти точкам.

2.6 Метод Гаусса-Кронрода

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

,

где - узлы метода Гаусса по точкам, а параметров , , подобраны таким образом, чтобы порядок точности метода был равен .

Тогда для оценки погрешности можно использовать эмпирическую формулу:

где - приближённое значение интеграла, полученное методом Гаусса по точкам.


3. Функциональные модели решения задачи

Функциональные модели решения задачи представлены на рисунках 1 и 2.

Используемые обозначения:

g10c1, g10c2, g10c3, g10c4, g10c5 - константы десятиточечного метода Гаусса;

g10x1, g10x2, g10x3, g10x4, g10x5 - константы десятиточечного метода Гаусса;

m, n - вспомогательные переменные;

s1, s2, s3, s4, s5, s - вспомогательные переменные;

a, b - пределы интегрирования;

f - интегрируемая функция;

gc - посчитанный интеграл на интервале (a, b);

ga, gb - переменные для подсчета интеграла на половине интервала;

eps - точность интегрирования;

k - вспомогательная переменная.


Рисунок 1 - Функциональная модель решения задачи десятиточечного метода Гаусса, реализованная методом Gaus_Calc

Рисунок 2 - Функциональная модель решения задачи для функции Gaus


4. Программная реализация решения задачи

;; интегрируемая функция

;; 1 пример

;; (/ (* 2 (expt x 3)) (expt x 4))

;; 2 пример

;; (* 3.142 (sin (* 3.142 x)))

;; 3 пример

(* (/ (log (+ x 1)) x) (exp (* - 1 x)))

;; десятиточечный метод Гаусса

(defun Gauss_Calc (a b f)

(setq g10c1 (/ 0.9739065285 6.2012983932))

(setq g10c2 (/ 0.8650633667 6.2012983932))

(setq g10c3 (/ 0.6794095683 6.2012983932))

(setq g10c4 (/ 0.4333953941 6.2012983932))

(setq g10c5 (/ 0.1488743390 6.2012983932))

(setq g10x1 (/ 0.0666713443 6.2012983932))

(setq g10x2 (/ 0.1494513492 6.2012983932))

(setq g10x3 (/ 0.2190863625 6.2012983932))

(setq g10x4 (/ 0.2692667193 6.2012983932))

(setq g10x5 (/ 0.2955242247 6.2012983932))

(setq m (/ (+ b a) 2))

(setq n (/ (- b a) 2))

(setq s1 (* g10c1 (+ (funcall f (+ m (* n g10x1))) (funcall f (- m (* n g10x1))))))

(setq s2 (* g10c2 (+ (funcall f (+ m (* n g10x2))) (funcall f (- m (* n g10x2))))))

(setq s3 (* g10c3 (+ (funcall f (+ m (* n g10x3))) (funcall f (- m (* n g10x3))))))

(setq s4 (* g10c4 (+ (funcall f (+ m (* n g10x4))) (funcall f (- m (* n g10x4))))))

(setq s5 (* g10c5 (+ (funcall f (+ m (* n g10x5))) (funcall f (- m (* n g10x5))))))

(setq s (+ s1 s2 s3 s4 s5))

;; рекурсивная ф-ция подсчета с заданной точностью

;; gc - ранее посчитаный интеграл на интервале (a,b)

(defun Gauss (a b eps gc f)

;; разбиваем интервал на две половины

(setq k (/ (+ a b) 2))

;; в каждой половине считаем интеграл

(setq ga (Gauss_Calc a (/ (+ a b) 2) f))

(setq gb (Gauss_Calc (/ (+ a b) 2) b f))

(if (> (abs (- (+ ga gb) gc)) eps)

(setq ga (Gauss a (/ (+ a b) 2) (/ eps 2) (Gauss_Calc a (/ (+ a b) 2) f) f))

(+ ga (Gauss (/ (+ a b) 2) b (/ eps 2) (Gauss_Calc (/ (+ a b) 2) b f) f))

;; открываем файл для чтения

(setq input-stream (open " d: \\predel. txt": direction: input))

(setq a (read input-stream))

(setq b (read input-stream))

(setq eps (read input-stream))

(close input-stream)

;; находим интеграл

(setq integral (Gauss a b eps (Gauss_Calc a b (function F)) (function F)))

;; открываем файл для записи

(setq output-stream (open " d: \\test. txt": direction: output))

(format output-stream "Integral = ~a" integral)

(close output-stream)


5. Пример выполнения программы

Рисунок 3 - Пределы интеграла и точность вычисления для интегрируемой функции

Рисунок 4 - Результат вычисления интеграла функции с заданными пределами и точностью вычисления

Рисунок 5 - Пределы интеграла и точность вычисления для интегрируемой функции

Рисунок 6 - Результат вычисления интеграла функции с заданными пределами и точностью вычисления

Рисунок 7 - Пределы интеграла и точность вычисления для интегрируемой функции

Рисунок 8 - Результат вычисления интеграла функции с заданными пределами и точностью вычисления


Заключение

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


Список использованных источников и литературы

1. Бронштейн И.Н. Справочник по математике для инженеров и учащихся втузов [Текст] / И.Н. Бронштейн, К.А. Семендяев. - М.: Наука, 2007. - 708 с.

2. Кремер Н.Ш. Высшая математика для экономистов: учебник для студентов вузов. [Текст] / Н.Ш. Кремер, 3-е издание - М.: ЮНИТИ-ДАНА, 2006. C.412.

3. Калиткин Н.Н. Численные методы. [Электронный ресурс] / Н.Н. Калиткин. - М.: Питер, 2001. С.504.

4. Численное интегрирование [Электронный ресурс] - Режим доступа: http://ru. wikipedia.org/wiki/Численное_интегрирование

5. Семакин И.Г. Основы программирования. [Текст] / И.Г. Семакин, А.П. Шестаков. - М.: Мир, 2006. C.346.

6. Симанков В.С. Основы функционального программирования [Текст] / В.С. Симанков, Т.Т. Зангиев, И.В. Зайцев. - Краснодар: КубГТУ, 2002. - 160 с.


Уменьшается количество вычислений подынтегральной функции. Другая схема уточнения значений интеграла - процесс Эйтнена. Производится вычисление интеграла с шагами, причем. Вычисление значений. Тогда (14). За меру точности метода Симпсона принимают величину: 5. Примеры Пример 1. Вычислить интеграл по формуле Симпсона, если задана таблицей. Оценить погрешность. Таблица 3. ...

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

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

Чтобы проиллюстрировать, как действует в этом случае наш метод, рассмотрим частицу, лагранжиан которой имеет вид

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

(3.45)

Интеграл по всем траекториям, соединяющим точки и .

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

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

. (3.46)

Величину можно выразить через и новую переменную

Это означает, что каждая точка на траектории определяется уже не ее расстоянием от произвольной координатной оси, а отклонением от классической траектории, как это показано на фиг. 3.7.

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

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

При интегрировании по траекториям величина остается в этом случае постоянной. Кроме того, описывающая траекторию новая переменная ограничена тем, что в крайних точках она равна нулю. Указанная подстановка приводит к интегралу по траекториям, не зависящему от положения крайних точек и .

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

Интеграл действия можно записать в виде

. (3.48)

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

Интеграл по траекториям не зависит от вида классической траектории, поэтому ядро можно представить в виде

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

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

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

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

Задача 3.6. Учитывая, что лагранжиан свободной частицы является квадратичной формой, покажите, что

, (3.52)

(см. задачу 2.1), и приведите соображения в пользу того, что функция может зависеть только от разности .

Задача 3.7. Дальнейшая информация о функции может быть получена на основе свойства, выраженного равенством (2.31). Прежде всего заметим, что результаты решения задачи 3.6 позволяют записать функцию как , где - интервал времени . Используя это представление функции в выражении (3.52) и подставляя последнее в равенство (2.31), выразите функцию через и , где и . Покажите, что если функцию записать в виде, как это указано в (2.21), означает, что в первом приближении по функция . Это соответствует тому, что величина в выражении (3.55) полагается равной нулю. Окончательный вид функции согласуется с выражением (3.3).

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

В некоторых вопросах математической физики приходится рассматривать криволинейный интеграл первого типа:

связываемый с именем Гаусса. Здесь через обозначена длина

вектора, соединяющего внешнюю точку с переменной точкой кривой (I) (рис. 25), через - угол между этим вектором и нормалью к кривой в точке М.

Так как точка А неизменна, то подинтегральное выражение представляет собой функцию от координат х, у точки М. Представим интеграл Гаусса в форме криволинейного интеграла второго типа. Если суть углы между положительным направлением оси х и направлениями радиуса-вектора и нормали, то, очевидно,

Подставляя это в интеграл Гаусса, приведем его к виду

Если же воспользоваться формулой (15) п° 353, то и получим искомое выражение интеграла в виде криволинейного интеграла второго типа:

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

Функции равно как и их производные, непрерывны во всей плоскости за исключением точки А, где Во всех точках, отличных от А, удовлетворяется условие интегрируемости. Действительно,

так что эти производные равны.

Если кривая (1) замкнута, но не охватывает точки А (и не проходит через нее), то необходимо . Если же замкнутая кривая охватывает точку А, то интеграл Гаусса может быть и отличным от нуля, но, как мы видели в предыдущем его значение должно быть одним и тем же для всех таких кривых. Для выяснения этого значения возьмем в качестве кривой окружность радиуса с центром в точке А. Тогда

Итак, для каждой замкнутой кривой внутри которой находится точка А, будет

если нормаль направить во внешнюю сторону, как мы это сделали в случае окружности.

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

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

Возьмем на кривой (I) элемент и определим угол, под которым этот элемент виден из точки А. Если М есть (например, начальная) точка этого элемента, то опишем вокруг А окружность радиусом и спроектируем на эту окружность элемент Пусть элемент окружности, который

служит проекцией элемента будет . Так как угол между ними (считая оба элемента приближенно прямолинейными) равен углу то

С другой стороны, очевидно,

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

Наконец, суммируя все элементарные углы, мы получим, что угол видимости для всей кривой как раз и выражается интегралом

Если кривая пересекается лучами, исходящими из точки А, более чем в одной точке, но может быть разбита на части, каждая из которых пересекается этими лучами уже лишь в одной точке, то нужно лишь просуммировать интегралы Гаусса, относящиеся к этим частям.

Выберем на кривой определенное направление, а нормаль будем направлять, например так, чтобы угол между положительно направленной касательной и нею был Тогда в одних частях кривой нормаль окажется направленной в сторону, противоположную точке А, и интеграл Гаусса даст угол видимости с плюсом, в других же частях нормаль будет направлена в сторону точки А, и угол видимости получится с минусом. В общем интеграл Гаусса в этом случае даст алгебраическую сумму углов видимости. Впрочем, именно эту сумму и называют углом видимости для всей кривой (I), понимая, таким образом, под углом видимости полную меру вращения луча зрения от начала к концу кривой. некоторую окрестность точки А, а затем перейти к пределу, сжимая эту окрестность.