Разработка программного модуля для вычисления интеграла
Краткое сожержание материала:
Содержание
Введение
Постановка задачи
Проектирование программного модуля
Тестирование программного модуля
Заключение
Список использованных источников
Введение
Целью данной курсовой работы является разработка программного модуля для вычисления интеграла по формуле трапеции и Симпсона с заданной точностью , определяя шаг интегрирования по оценке остаточного члена. Для разработки используется табличный процессор Excel и язык программирования Visual Basic for Application.
Данная курсовая работа состоит из 4 разделов.
В разделе «Постановка задачи» описаны: математическая модель задачи, входные и выходные данные, обработка ошибок, которые могут быть допущены при работе с данной программой.
В разделе «Проектирование программного модуля» приведена структурная диаграмма программного модуля, схема программного модуля с ее описанием и описан пользовательский интерфейс.
В разделе «Реализация программного модуля» находится код программы с комментариями к нему и описаны используемые операторы и функции.
В разделе «Тестирование программного модуля» показана работа программы.
1. Постановка задачи
1.1 Математическая модель задачи
Пусть требуется вычислить интеграл , где 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.3 Выходные данные
Выходными данными является значение интеграла .
Требования к выходным данным:
1. Все выходные данные выводятся на форму;
2. Ко всем выходным данным запрещен доступ со стороны пользователя.
1.4 Обработка ошибок.
В данной программе количество ошибок пользователя сведено к минимуму, т. к. пользователь не вводит данные. Все необходимые данные заложены в программу.
2 Проектирование программного модуля
2.1 Структурная диаграмма программного модуля
Рисунок 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 - происходит вычисление значения функции.
2.3 Разработка пользовательского интерфейса
При запуске программы появляется следующее окно:
Рисунок 6. Окно программы.
В окне программы расположены исходные данные в элементе управления Label, результат (элемент управления Label), таблицы значений на элементе управления ListBox и кнопка «Вычислить».
3 Реализация программного модуля
3.1 Код программы
Dim n As Integer 'количество делений отрезка
Dim i As Integer 'счетчик итераций
Dim i1 As Double 'переменная для нахождения интеграла
Dim i2 As Double 'переменная для нахождения интеграла
Dim x As Double 'значение аргумента
Dim h As Double 'шаг
Private Sub UserForm_Initialize()
Application.Visible = False 'делаем Excel невидимым
End Sub
Private Sub CommandButton1_Click()
Label3.Caption = Trap(0, 1) 'вычи...
Разработка программного модуля
Структурная диаграмма программного модуля. Разработка схемы программного модуля и пользовательского интерфейса. Реализация программного модуля: код пр...
Проект программного модуля для нахождения приближенного значения бесконечной суммы
Математическая модель и методика разработки программного модуля для вычисления приближенного значения бесконечной суммы с точностью до Е=0,05, если x...
Разработка программного модуля на основе понятийно-тезисной модели
Сравнительный анализ технологий тестирования. Разработка программного модуля "Интеллектуальная обучающая система для широкого перечня курсов". Обоснов...
Разработка программного модуля, который находит сумму угловых элементов матрицы и сумму элементов, находящихся над главной диагональю
Структурная диаграмма программного модуля. Нахождение суммы элементов, находящихся над главной диагональю. Реализация программного модуля: код програм...
Разработка программного модуля "Лаборатория"
Разработка СУБД - программного модуля для систематизации, хранения и обработки сведений о работниках лаборатории. Технологический процесс машинной реа...