Содержание
Введение
Постановка задачи
Проектирование программного модуля
Тестирование программного модуля
Заключение
Список использованных источников
Целью данной курсовой работы является разработка программного модуля для вычисления интеграла
по формуле трапеции и Симпсона с заданной точностью , определяя шаг интегрирования по оценке остаточного члена. Для разработки используется табличный процессор Excel и язык программирования Visual Basic for Application.Данная курсовая работа состоит из 4 разделов.
В разделе «Постановка задачи» описаны: математическая модель задачи, входные и выходные данные, обработка ошибок, которые могут быть допущены при работе с данной программой.
В разделе «Проектирование программного модуля» приведена структурная диаграмма программного модуля, схема программного модуля с ее описанием и описан пользовательский интерфейс.
В разделе «Реализация программного модуля» находится код программы с комментариями к нему и описаны используемые операторы и функции.
В разделе «Тестирование программного модуля» показана работа программы.
Пусть требуется вычислить интеграл
, где f(x) - непрерывная функция. Для простоты рассуждений ограничимся случаем, когда f(x)³ 0. Разобьем отрезок [a, b] на n отрезков точками a=x0<x1<x2<...<xk-1<xk<...<xn=b и с помощью прямых х=хk построим n прямолинейных трапеций (эти трапеции заштрихованы на рис. 1). Сумма площадей трапеций приближенно равна площади криволинейной трапеции, т.е.Где f(xk-1) и f(xk) - соответственно основания трапеций; xk - xk-1 = (b-a)/n - их высоты.
Таким образом, получена приближенная формула
которая и называется формулой трапеций. Эта формула тем точнее, чем больше n.
Разделим отрезок [a, b] на четное число равных частей n=2m. Площадь криволинейной трапеции соответствующей первым двум отрезкам [x0x1] и [x1x2] и ограниченной заданной кривой y=f(x) заменим площадью криволинейной трапеции которая ограничена параболой второй степени проходящей через три точки M(x0y0) M1(x1y1) M2(x2y2) и имеющей ось параллельную оси Oy. Такую криволинейную трапецию будем называть параболической трапецией.
Уравнение параболы с осью параллельной оси Oy имеет вид
Коэффициенты A, Bи C однозначно определяются из условия что парабола проходит через три заданные точки. Аналогичные параболы строим и для других пар отрезков. Сумма площадей параболических трапеций и даст приближенное значение интеграла.
Вычислим сначала площадь одной параболической трапеции.
Лемма: Если криволинейная трапеция ограничена параболой
осью Ох и двумя ординатами расстояние между которыми равно 2h то ее площадь равна
(1)
где y0 и y2 – крайние ординаты а y1 – ордината кривой в середине отрезка.
Доказательство: Расположим вспомогательную систему координат так как показано на рисунке
Коэффициенты в уравнении параболы определяются из следующих уравнений:
Если то
Если то (2)
Если то
Считая коэффициенты ABC известными определим площадь параболической трапеции с помощью определенного интеграла:
Но из равенства (2) следует что
.
Следовательно
что и требовалось доказать.
Вернемся снова к основной нашей задаче (см. рис). Пользуемся формулой (1) мы можем написать следующие приближенные равенства( ):
Складывая левые и правые части получим слева искомый интеграл справа его приближенное значение:
или (3)
В конечном итоге мы получили формулу Симпсона. Здесь число точек деления 2m произвольно но чем больше это число тем точнее сумма в правой части равенства (3) дает значение интеграла.
1.2 Входные данные
В данном программном модуле входных данных нет. Все необходимые данные изначально заложены в программу.
Выходными данными является значение интеграла
.Требования к выходным данным:
1. Все выходные данные выводятся на форму;
2. Ко всем выходным данным запрещен доступ со стороны пользователя.
В данной программе количество ошибок пользователя сведено к минимуму, т. к. пользователь не вводит данные. Все необходимые данные заложены в программу.
Рисунок 1. Структурная диаграмма программного модуля.
UserForm1 – пользовательская форма.
UserForm_Initialize() – процедура начальной инициализации пользовательской формы.
CommandButton1_Click() – процедура, срабатывающая при нажатии кнопки «Вычислить интеграл», которая производит вычисление и записывает результат.
Simp(a As Double, b As Double) – функция вычисления интеграла по формуле Симпсона.
Trap(a As Double, b As Double) – функция вычисления интеграла по формуле трапеции.
f(x As Double) – функция вычисляющая значение функции
.Рисунок 2. Блок схема основной программы.
1 – происходит вызов функции вычисления интеграла методом трапеции.2 – происходит вызов функции вычисления интеграла по формуле Симпсона.
Рисунок 3. Блок схема функции вычисления интеграла по формуле Симпсона.
1 – происходит присвоение переменным начальных значений.
2 – происходит присвоение переменным очередных значений.
3 – описан цикл от 0 до n.
4 – вычисляется аргумент.
5 – проверяется условие.
6 – происходит вычисление интеграла.
7 – проверяется условие.
8 – происходит вычисление интеграла.
9 – проверяется условие.
10 – происходит вычисление интеграла.
11 – проверяется условие.
12 – функции присваивается значение интеграла.
Рисунок 4. Блок схема функции вычисления интеграла по формуле трапеции.
1 – происходит присвоение переменным начальных значений.
2 – происходит присвоение переменным очередных значений.
3 – описан цикл от 0 до n.
4 – вычисляется аргумент и происходит вычисление интеграла.
5 – проверяется условие.
6 – функции присваивается значение интеграла.
Рисунок 5. Блок схема вычисления значения функции.
1 – происходит вычисление значения функции.
При запуске программы появляется следующее окно:
Рисунок 6. Окно программы.
В окне программы расположены исходные данные в элементе управления Label, результат (элемент управления Label), таблицы значений на элементе управления ListBox и кнопка «Вычислить».
Dim n As Integer 'количество делений отрезка