Function Simp(a As Double, b As Double, n As Integer)


h = (b - a) / n

Simp = integral_1(a) + integral_1(b)

For i = 1 To n - 1 Step 2

Simp = Simp + 4 * integral_1(a + i * h)

Next i

For i = 2 To n - 2 Step 2

Simp = Simp + 2 * integral_1(a + i * h)

Next i

Simp = Simp * h / 3

End Function

При вызове модуля Simp (a, b, n) из ячейки F19 появляется окно Аргументы функции, рис. 1.3.2.

Рис. 1.3.2

После подстановки в качестве аргументов значений ячеек B4, D4 и H4 и нажатии кнопки ОКв ячейке F19 отображается число 1,33333333, это и есть значение определённого интеграла, соответствующего варианту задания и найденного по формуле Симпсона в среде VBA.

Совпадение результатов вычислений в ячейках F18 иF19подтверждает правильность вычислений.

Использование пользовательской формы UserForm

Для вычисления определённого интеграла с использованием пользовательской формы необходимо в среде VBA, применяя объекты панели Toolbox, создать платформу UserForm, как показано на рис. 1.4.1.

Рис. 1.4.1

 

Организация взаимодействия объектов, находящихся на платформе UserForm, определяется модулем, программно поддерживающим объект CommandButton1 (Вычислить).

Для рассматриваемого примера этот модуль имеет вид:

Private Sub CommandButton1_Click()

Dim a As Double

Dim b As Double

Dim n As Integer

If Not IsNumeric(TextBox1) Or Not IsNumeric(TextBox2) Or Not IsNumeric(TextBox3) Then

MsgBox " Нецифровые данные"

Exit Sub

End If

a = CDbl(TextBox1)

b = CDbl(TextBox2)

n = CDbl(TextBox3)

If OptionButton1 Then

TextBox4 = Prym(a, b, n)

TextBox5 = Trap(a, b, n)

TextBox6 = Simp(a, b, n)

End If

End Sub

Некоторые комментарии к программе:

 

– фрагмент программы

If Not IsNumeric(TextBox1) Or Not IsNumeric(TextBox2) Or Not IsNumeric(TextBox3) Then

MsgBox " Не цифровые данные"

Exit Sub

End If

проверяет принадлежность данных, вводимых через объекты TextBox1, TextBox2 иTextBox3к цифровому типу;

– если включён объект OptionButton1, то в объекты TextBox4, TextBox5 и TextBox6 соответственно выводятся результаты функционирования модулей Prym(a, b, n), Trap(a, b, n)и Simp(a, b, n), то есть значения определённого интеграла, соответствующего варианту задания, вычисленного методом прямоугольников, методом трапеций и методом Симпсона.

Достоинством применения пользовательской формы является то, что в ней можно изменять пределы интегрирования и точность.

На рис. 1.4.2 показан пример увеличения точности вычисления определённого интеграла при разбиении на 10000 прямоугольников, трапеций, криволинейных трапеций. Как видно, значения, полученные в результате вычислений разными методами, сближаются.

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

Рис. 1.4.2

 



Дата добавления: 2020-07-18; просмотров: 452;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.01 сек.