Исследование методов вычисления определенных интегралов

УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

ФИЛИАЛ В ГОРОДЕ СТЕРЛИТАМАК

КАФЕДРА ЕСТЕСТВЕННО-НАУЧНЫХ И ОБЩЕПРОФЕССИОНАЛЬНЫХ ДИСЦИПЛИН

	













ИССЛЕДОВАНИЕ МЕТОДОВ ВЫЧИСЛЕНИЯ ОПРЕДЕЛЕННЫХ ИНТЕГРАЛОВ

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовой работе по ИНФОРМАТИКЕ

2403.302413.000ПЗ

(обозначение документа)

	

Группа ВТС-109

Фамилия, и. о. 

Подпись

Дата

Оценка

Студент

Терещук А.И. 







Консультант

Карасев Е.М. 







Проверил



















Стерлитамак 2011г.


Содержание



	Введение

	Теоретическая часть

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

	Пример применения

	Практическая часть

	Программное вычисление

	Визуализация методов

	Заключение

	Список литературы

	


Введение

	

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

	Мне была поставлена задача исследовать два метода вычисления определенных интегралов: метод трапеций и метод Симпсона (парабол)

метод трапеция симпсон интеграл


Теоретическая часть

	

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

	Пусть требуется вычислить интеграл . Разобьем сегмент  на n равных частей при помощи точек . Метод трапеций заключается в замене интеграла  суммой

	 площадей трапеций с основаниями, соответственно равными и , и с высотами, равными .

	Таким образом, справедлива формула:

	,

	Где R - остаточный член. Это формула называется формулой трапеций.

	

	

	Рисунок 1 - Криволинейная трапеция

	

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

	

	

	Рисунок 2 - Метод трапеций

	

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

	

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

	площадей фигур и представляющий собой трапеции, лежащие под параболами, проходящими через три точки графика функции f (x) c абсциссами .

	Таким образом, справедлива формула:

	,

	Где R - остаточный член. Это формула называется формулой Симпсона.

	

Пример применения



	

	Рисунок 3 - График функции

	



y0

y1

y2

y3

y4

y5

y6

y7

y8

y9

y10

x

0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,8

0,9

1

y

1

0,86

0,76

0,68

0,6

0,55

0,5

0,47

0,46

0,43

0,41

	

	Найдем площадь криволинейной трапеции методом трапеций:

	

	S=0,1* ( (1+0,41) /2+0,86+0,76+0,68+0,6+0,55+0,5+0,47+0,46+0,43) =0,6025 кв. ед

	

	Найдем площадь криволинейной трапеции методом Симпсона:

	

	S=0,0017*2* (1+0,41+2* (0,76+0,6+0,5+0,46) +4* (0,86+0,68+0,55+0,47+0,43)) =

	=0,6123 кв. ед

	



N = 2



S1 = 0



S = Sh / 2



S1 = S



N = 2N



h = (b – a)/N



S = f(a)+ f(b)



x = a





x = x + h



S = S + 2Fun(x)



a, b, 



Конец

Начало



N, S



i = 1, N – 1



|S-S1|



Да

	Блок-схема метода трапеций



	


N = 2

S1 = 0

J=S



S1 = S



N = 2N



h = (b – a)/N



S = f(a)+ f(b)



x = a



S = S + 4Fun(x)

a, b, ,

n-четное



Конец

Начало



N, S







|S-S1|

Да



S = S + 2Fun(x)



Блок-схема метода Симпсона




Практическая часть

	

	Конструирование интерфейса

	Программа разрабатывается в объектно-ориентированной среде программирования Lazarus.

	Перед началом программирования, была создана форма Заставка.

	

	

	Рисунок 4 - Заставка

	

	В этом окне расположены:

		Кнопка "Запуск", позволяющая приступить к началу программы;

		Компоненты Label;

	Затем была создана основная форма Меню, позволяющая выбирать операции.

	

	

	Рисунок 5 - Основная форма

	

	Данное окно представляет главное окно программы.

	В этом окне расположены:

		Компоненты Label для подписи компонентов Edit;

		Компонент MainMenu для выбора операции;

	Далее была создана форма Параметры, предназначенная для введения данных.

	

	

	Рисунок 6 - Параметры

	

	В этом окне расположены:

		Компоненты Label для подписи компонентов Edit;

		Две кнопки: "OK" - принимает данные и возвращается на главное меню; "Отмена" - позволяет вернуться к главному окну, не принимая данных;

	Затем была создана форма Решение, на которой будет показана площадь по разным методам вычислений и визуализироваться один из методов.

	

	

	Рисунок 7 - Решение

	

	В этом окне расположены:

		Компонент Label для подписи компонента Edit;

		Две кнопки: "График" - визуализирует метод трапеций; "OK" - принимает данные и возвращается на главное меню;

		Компонент Chart для отображения графика;

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

	

	

	Рисунок 8 - Исследование на погрешность

	

	В этом окне расположены:

		Три кнопки: Кнопка "График погрешности" визуализирует сравнение методов; Кнопка "Сохранить" сохраняет результаты сравнения в текстовый файл; Кнопка "OK" - принимает данные и возвращается на главное меню;

		Компонент Chart для отображения графика;

	

Программное вычисление

	

	По блок-схеме была создана программа для вычисления интеграла методами Симпсона и трапеций:

	

	// Вводим переменные:

	var

	Form2: TForm2;

	a,b,E,h,S,S1,x: real; n, i: integer;

	implementation

	{ TForm2 }

	uses unit1,unit3,unit4,unit5;

	// Описываем функцию:

	function f (x: real): real;

	begin

	f: =1/Sqrt (1+3*x+2*x*x);

	end;

	// В соответствие с блок-схемой напишем программу на языке высокого уровня:

	procedure TForm2. MenuItem4Click (Sender: TObject);

	begin

	// найдем площадь интеграла по методу трапеций

	S: =0; // изначально обнуляем значение площади интеграла

	n: =1; // начальное значение количества разбиений

	Repeat // начало цикла

	S1: =S; // предыдущее значение площади изначально равно значению площади с количеством разбиений равным 1

	n: =2*n; // увеличиваем количество разбиений в два раза

	h: = (b-a) /n; // формула вычисления шага

	S: =f (a) +f (b); // значение функции в нижнем пределе + значение функции в верхнем пределе определенного интеграла

	x: =a; // значению x присвоим значение нижнего предела

	for i: =1 to n-1 do // для i-того элемента, изменяющегося от 1 до n-1

	begin

	x: =x+h; // х увеличиваем на шаг

	S: =S+2*f (x) // сумма площадей трапеций

	end;

	S: =S*h/2; // вычислим площадь по формуле

	Until abs (S-S1) <=E; // если разность значения площади и предыдущего значения площади меньше или равна заданной точности Е, то

	Form4. Edit1. Text: =FloatToStr (S); // выводим значение на экран

	Form4. Caption: ='Вычисление методом трапеций';

	Form4. Button2. visible: =True;

	Form4. Chart1. Visible: =True;

	Form4. ShowModal;

	end;

	procedure TForm2. MenuItem8Click (Sender: TObject);

	begin

	// найдем площадь интеграла по методу Симпсона (парабол)

	S: =0; // начальное значение количества разбиений

	n: =1; // изначально обнуляем значение площади интеграла

	Repeat // начало цикла

	S1: =S; // предыдущее значение площади изначально равно значению площади с количеством разбиений равным 1

	n: =2*n; // увеличиваем количество разбиений в два раза

	h: = (b-a) /n; // формула вычисления шага

	S: =f (a) +f (b); // значение функции в нижнем пределе + значение функции в верхнем пределе определенного интеграла

	x: =a; // значению x присвоим значение нижнего предела

	for i: =0 to n do // для i-того элемента, изменяющегося от 1 до n-1

	begin

	x: =a+i*h; // х увеличиваем

	if x=a then s: =s+f (x) else

	if x=b then s: =s+f (x) else

	if i mod 2 = 0 then s: =s+2*f (x) else s: =s+4*f (x); // если число четное, то вычисляется по формуле s: =s+2*f (x), а если нечетное, то по s: =s+4*f (x)

	end;

	S: =S*h/3; // вычислим площадь по формуле

	Until abs (S-S1) <=E; // если разность значения площади и предыдущего значения площади меньше или равна заданной точности Е, то

	Form4. Edit1. Text: =FloatToStr (S); // выводим значение на экран

	Form4. Caption: ='Вычисление методом парабол';

	Form4. Button2. visible: =False;

	Form4. Chart1. Visible: =False;

	Form4. ShowModal;

	end;

	

Визуализация методов

	

	Для открытия программы необходимо запустить project1. exe. После запуска откроется окно программы (рис.4). Предварительно создаем текстовый файл integral. txt в том же каталоге, где расположена программа (рис.9) в этом файле должны сохраниться результаты сравнения.

	Запускаем программу. С помощью компонента MainMenu выберем вкладки "Ввод", "Решение", "Исследование" и "Заставка".

	Выбираем вкладку "Ввод - Параметры" открывается Form 2 и вводим параметры (рис.10):

	

	

	Рисунок 9 – Меню

	

	

	Рисунок 10 - Параметры

	

	Нажимаем на кнопку "OK" и возвращаемся к основной форме. Выбираем методы решения:

	

	

	Рисунок 12 - Вычисление методов трапеций

	

	Аналогично выглядит форма, когда вычисляем площадь по методу Симпсона (парабол). Далее выбираем вкладку "Исследование на погрешность" открывается Form 5, нажимаем на кнопку "График", затем на кнопку "Сохранить"

	

	

	Рисунок 14 - Исследование на погрешность

	

	Из графика видно, что метод Симпсона (парабол) намного точнее, почти совпадает с точным значением, вычисленным в пакете Maxima.

	Затем на кнопку "Сохранить". Откроем каталог, где расположена программа и откроем текстовый файл integral. Txt

	

	

	Рисунок 15 - Сохранение результатов сравнения

	

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

	


Заключение

	

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

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


Список литературы



Намиот Д.Е. Основные особенности языка программирования Delphi 7. - М.: ‘Память ’, 1999.

Пильщиков В.Н. Программирование на языке Delphi 7. - М.: Диалог--Мифи, 1999.

Михеева Е.В. Информационные технологии в профессиональной деятельности: Учебное пособие для сред. проф. образования. - 2-е издание, стер. - М.: Издательский центр "Академия", 2005. - 384 с.

Румянцева Е.Л., Слюсарь В.В. Информационные технологии: учеб. пособие / Под. ред. проф. Л.Г. Гагариной. - М.: ИД "ФОРУМ": ИНФРА - М, 2007. - 256 с.: ил.

Ильин В.А., Поздняк Э.Г. - Основы математического анализа. Часть 1 - М.: Физматлит, 2008 - 648 с.







3