Смекни!
smekni.com

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

Содержание

Введение

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

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

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

Заключение

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


Введение

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

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