Студенческий сайт КФУ - ex ТНУ » Учебный раздел » Учебные файлы »ПРОГРАММИРОВАНИЕ

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

Тип: курсовая работа
Категория: ПРОГРАММИРОВАНИЕ
Скачать
Купить
Создание программного модуля для вычисления интеграла по формулам трапеции и Симпсона, определяя шаг интегрирования по оценке остаточного члена. Для разработки используется табличный процессор Excel и язык программирования Visual Basic for Application.
Краткое сожержание материала:

Содержание

Введение

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

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

Тестирование программного модуля

Заключение

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

Введение

Целью данной курсовой работы является разработка программного модуля для вычисления интеграла по формуле трапеции и Симпсона с заданной точностью , определяя шаг интегрирования по оценке остаточного члена. Для разработки используется табличный процессор 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...

Разработка программного модуля на основе понятийно-тезисной модели
Сравнительный анализ технологий тестирования. Разработка программного модуля "Интеллектуальная обучающая система для широкого перечня курсов". Обоснов...

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

Разработка программного модуля "Лаборатория"
Разработка СУБД - программного модуля для систематизации, хранения и обработки сведений о работниках лаборатории. Технологический процесс машинной реа...