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

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

Тип: курсовая работа
Категория: ПРОГРАММИРОВАНИЕ
Скачать
Купить
Методы и алгоритмы вычисления определенных интегралов: метод трапеций и метод Симпсона (метод парабол). Оформление функции вычисления заданного определённого интеграла на Visual Basic 6.0. Программный код функции. Создание приложения для вычисления.
Краткое сожержание материала:

Размещено на

13

Размещено на

Пояснительная записка к курсовой работе:

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

Введение

На практике часто возникает необходимость вычислить определённый интеграл. Если интеграл берётся в алгебраических функциях, то всё в порядке и взять его вручную не представляет труда. А если интеграл не берётся в алгебраических функциях или просто их очень много, то приходится прибегать к помощи компьютерной техники. Существуют несколько способов вычисления определённых интегралов на ЭВМ, причем абсолютно все эти способы получают лишь приближённые значения. В этой работе мы рассмотрим два метода вычисления: метод трапеций и метод Симпсона (метод парабол).

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

Пусть Y=, где - интегрируемая функция, непрерывная на отрезке . Для наглядности будем предполагать, что положительна на отрезке . В этом случае Y представляет собой площадь криволинейной трапеции, ограниченной линиями: ,,,. Выберем произвольное натуральное число и разобьём отрезок на равных отрезков при помощи точек: , , , , …, . Прямые разбивают нашу трапецию на полосок. Каждая полоса имеет граничные вертикали: и . Соединим прямой те точки, в которых эти вертикали пересекают интегрируемую функцию . В результате площадь каждой полоски приблизительно стала равна площади обычной прямолинейной трапеции (см. рис. 1).

Рис. 1

Площадь самой левой полоски приближённо равна площади самой левой трапеции, а именно: . Из математических соображений и , а высота трапеции . Значит . Площади всех следующих полосок выразятся аналогичным способом и составят: , , , …, . Чтобы найти площадь интересующей нас криволинейной трапеции необходимо сложить площади всех полосок, которые в свою очередь приближённо равны площадям соответствующих прямолинейных трапеций. Следовательно, площадь криволинейной трапеции, а значит и численное значение заданного интеграла , равны.

Эту формулу можно записать в другом виде, используя математические сокращения и утверждение, что - длина одного из равных отрезков или высота каждой прямолинейной трапеции:

(1).

Данная формула называется формулой трапеций. Её точность зависит от . Чем больше количество разбиений отрезка интегрирования, тем выше точность вычислений.

Теперь перейдём к заданию: нам необходимо найти толщину слоя меди, выделившейся в результате электролиза водного раствора хлорида меди (II) на катоде. Известна зависимость силы тока от времени . Отсюда имеем . Фактически нам надо оформить функцию вычисления заданного определённого интеграла на Visual Basic 6.0 методом трапеций. Назовём функцию metod_trapec. При вызове функции задаваемыми параметрами будут down_predel=0 - нижний предел интегрирования, up_predel - верхний предел интегрирования (время наблюдения), chislo_razb - число разбиений отрезка интегрирования. Программный код функции будет выглядеть так:

Public Function metod_trapec(ByVal a As Single, ByVal b As Single, ByVal n As Long) As Double

Dim h As Single

Dim s As Double

Dim i As Long

h = (b - a) / n

s = (F(a, Io) + F(b, Io)) * h / 2

For i = 1 To n - 1

s = s + F(a + i * h, Io) * h

Next i

metod_trapec = s

End Function

__________

Фактические параметры down_predel, up_predel, chislo_razb соответствуют формальным параметрам a, b, n. В основе лежит формула трапеций (1), записанная по-другому:

.

Накапливаем сумму, результат которой и будет искомым значением определённого интеграла. Далее присваиваем имени функции значение переменной s.

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

Пусть Y=, где - интегрируемая функция, непрерывная на отрезке . Для наглядности будем предполагать, что положительна на отрезке . В этом случае Y представляет собой площадь криволинейной трапеции, ограниченной линиями: ,,,. Выберем произвольное натуральное чётное число и разобьём отрезок на равных отрезков при помощи точек: ,,,, …,. Прямые разбивают нашу трапецию на полосок. Каждая полоса имеет граничные вертикали: и . Отметим точки, в которых эти вертикали пересекают интегрируемую функцию . В результате получились точки: , , , …,. На всём отрезке интегрирования через точки и проведём графики квадратичных функций. В результате получилось, что площадь двух соседних полосок, ограниченных прямыми и приближённо равна площади под параболой, проведённой через точки и (см. рис. 2).

Рис. 2

Вычислим площадь под параболой, проходящей через точки и . Уравнение параболы имеет общий вид . Площадь под параболой:

(2).

Парабола проходит через три точки , и , где . Решая систему из трёх уравнений,

получаем: .

Подставляем в формулу (2). Отсюда следует, что , где . Распространяем на весь отрезок:

. Запишем с применением математических операндов:

(3).

Данная формула называется формулой Симпсона. Её точность зависит от . Чем больше количество разбиений отрезка интегрирования, тем выше точность вычислений.

Фактически нам надо оформить функцию вычисления заданного определённого интеграла на Visual Basic 6.0 методом Симпсона. Назовём функцию metod_Simpson. При вызове функции задаваемыми параметрами будут down_predel - нижний предел интегрирования, up_predel - верхний предел интегрирования, chislo_razb - число разбиений отрезка интегрирования. Программный код функции будет выглядеть так:

Public Function metod_Simpson(ByVal a1 As Single, ByVal b1 As Single, ByVal n As Long) As Double

Dim h As Single

Dim s As Double

Dim i As Long

Dim x As Single

h = (b1 - a1) / n

s = F(a1, Io) + F(b1, Io) + 4 * F(a1 + h, Io)

For i = 1 To Int(n / 2) - 1

x = a1 + 2 * h * i

s = s + 2 * F(x, Io) + 4 * F(x + h, Io)

Next i

metod_Simpson = s * h / 3

End Function

Фактические параметры down_predel, up_predel, chislo_razb соответствуют формальным параметрам a, b, n. В основе лежит формула Симпсона. Сумма первых трёх слагаемых в этой формуле является начальным значением переменной . Далее пробегаем по всему отрезку интегрирования, кроме конечных полосок, и накапливаем сумму. В конце умножаем её на . Результат и будет искомым значением определённого интеграла. Далее присваиваем имени функции значение переменной .

Создание приложения

При запуске Microsoft Visual Basic 6.0 автоматически выскакивает окно с предложением создать новый проект Standard EXE. Нажимаем OK. Начнём создание проекта с титульного листа. Для этого в меню Project выберем команду Add Form. В появившемся диалоговом окне выберем Dialog и нажмем OK. В открывшейся форме расставим объекты: Label1, Label2,..., Label8, как показано на рисунке (см. рис. 3).

Рис. 3 Титульный лист

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

Присвоим свойству Caption значение “Титульный лист”. На кнопку Вход напишем следующий программный код:

Private Sub OKButton_Click()

Unload Dialog

Form1.Show

End Sub

При щелчке на кнопке Вход из памяти выгружается форма Dialog и загружается базовая форма, служащая начальной точкой для всех операций с программой, форма Form1. Для того, чтобы создать форму Form1, в меню Project выполним команду Add Form. В появившемся диалоговом окне выберем Form и нажмем OK. Щёлкнем правой кнопкой мыши на панели инструментов, выберем вкладку Components, загрузим нестандартные инструменты, которые понадобятся в будущем: Microsoft Windows Common Controls 6.0. Присвоим свойству Caption формы Form1 значение “Курсовой проект - Тема 7 вариант 9 (нахождение толщины слоя)”. Создадим меню для проекта. Для этого в меню Tools выполним команду Menu Editor. В появившемся диалоговом окне напишем названия пунктов меню и названия процедур, которые будут запускаться при выполнении команд меню. Редактор меню с введёнными именами представлен на рисунке (см. рис. 4).

Рис. 4 Редактор меню

Опишем, какие процедуры выполняются в каждом пункте меню.

1. MnuFileExit - осуществляет выход из приложения.

Private Sub MnuFileExit_Click()

End

End Sub

Рис. 5

2. MnuFileSave_rez - осуществляет сохранение результата эксперимента. Результат сохраняется в файле log.txt, куда записывается используемый метод, нижний предел интегрирования, верхний предел интегрирования, количество разбиений отрезка интегрирования, вычисленное значение интеграла, истинное значение интеграла, погрешность вычислений.

Private Sub MnuFileSave_rez_Click()

Dim metod As String

If Option1.Value Then

metod = "Метод трапеций"

Else

metod = "Метод Симпсона"

End If

Open "log.txt" For Output As #1

Print #1, "ОТЧЕТ П...

Другие файлы:

Разработка в Visual Basic приложения "Исследование методов вычисления определённых интегралов"
Рассмотрение методов прямоугольников и трапеций как способов вычисления определенных интегралов. Характеристика графика зависимости погрешности от чис...

Сущность метода Монте-Карло и моделирование случайных величин
Исследование способа вычисления кратных интегралов методом Монте-Карло. Общая схема метода Монте-Карло, вычисление определенных и кратных интегралов....

Программа для вычисления интегралов
Разработка программного обеспечения решения задач численного вычисления определенных интегралов. Анализ задачи, методы, инструменты: требования к аппа...

Численные методы
Понятие определенного интеграла, его геометрический смысл. Численные методы вычисления определенных интегралов. Формулы прямоугольников и трапеций. Пр...

Определенный интеграл. Теория и практика вычислений
Издание посвящено теоретическим и практическим аспектам вычисления определенных интегралов, а также методам их оценок, свойствам и приложениям к решен...