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 = Format(Prym(a, b, n), "0.0000000000")

TextBox5 = Format(trap(a, b, n), "0.0000000000")

TextBox6 = Format(simpson(a, b, n), "0.0000000000")

End If

If OptionButton2 Then

TextBox4 = Format(Prym1(a, b, n), "0.0000000000")

TextBox5 = Format(trap1(a, b, n), "0.0000000000")

TextBox6 = Format(simpson1(a, b, n), "0.0000000000")

End If

If OptionButton3 Then

TextBox4 = Prym2(a, b, n)

TextBox5 = trap2(a, b, n)

TextBox6 = simpson2(a, b, n)

End If

End Sub

Модуль программно поддерживающий кнопку Выходпользовательской формы Вычисление определённого интеграла в VBA имеет вид:

 

Private Sub CommandButton2_Click()

Unload Me

End Sub

Модули подынтегральных функций имеют вид:

 

Function integral_1(x)

integral_1 = (x * (1 - x) ^ 2) ^ (1 / 3)

End Function

Function integral_2(x)

integral_2 = 3 * x / (1 + x ^ 3) ^ (1 / 2)

End Function

Function integral_3(x)

integral_3 = (Exp(x / 2)) / ((x + 1) ^ (1 / 2))

End Function

Используемые при вычислениях модули имеют вид:

 

Prym(a As Double, b As Double, n As Integer)

h = (b - a) / n

Prym = 0

For i = 0 To n - 1

Prym = Prym + integral_1(a + i * h)

Next i

Prym = Prym * h

End Function

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

h = (b - a) / n

Prym1 = 0

For i = 0 To n - 1

Prym1 = Prym1 + integral_2(a + i * h)

Next i

Prym1 = Prym1 * h

End Function

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

h = (b - a) / n

Prym2 = 0

For i = 0 To n - 1

Prym2 = Prym2 + integral_3(a + i * h)

Next i

Prym2 = Prym2 * h

End Function

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

h = (b - a) / n

trap = integral_1(a) + integral_1(b)

For i = 1 To n - 1

trap = trap + integral_1(a + i * h)

Next i

trap = trap * h

End Function

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

h = (b - a) / n

trap1 = integral_2(a) + integral_2(b)

For i = 1 To n - 1

trap1 = trap1 + integral_2(a + i * h)

Next i

trap1 = trap1 * h

End Function

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

h = (b - a) / n

trap2 = integral_3(a) + integral_3(b)

For i = 1 To n - 1

trap2 = trap2 + integral_3(a + i * h)

Next i

trap2 = trap2 * h

End Function

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

h = (b - a) / n

simpson = integral_1(a) + integral_1(b)

For i = 1 To n - 1 Step 2

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

Next i

For i = 2 To n - 2 Step 2

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

Next i

simpson = simpson * (h / 3)

End Function

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

h = (b - a) / n

simpson1 = integral_2(a) + integral_2(b)

For i = 1 To n - 1 Step 2

simpson1 = simpson1 + 4 * integral_2(a + i * h)

Next i

For i = 2 To n - 2 Step 2

simpson1 = simpson1 + 2 * integral_2(a + i * h)

Next i

simpson1 = simpson1 * (h / 3)

End Function

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

h = (b - a) / n

simpson2 = integral_3(a) + integral_3(b)

For i = 1 To n - 1 Step 2

simpson2 = simpson2 + 4 * integral_3(a + i * h)

Next i

For i = 2 To n - 2 Step 2

simpson2 = simpson2 + 2 * integral_3(a + i * h)

Next i

simpson2 = simpson2 * (h / 3)

End Function

Для обеспечения в калькуляторе возможности вычислять определённый интеграл с новой подынтегральной функцией необходимо:

– создать модуль новой подынтегральной функции;

– создать модули вычисления методами прямоугольников, трапеций и Симпсона для добавляемой подынтегральной функции;

– добавить на пользовательскую форму Вычисление определённого интегралы в VBA объект OptionButton(в данном случае OptionButton4) и в модуле программно поддерживающем, его с использованием объектов TextBox, задать вариант пределов интегрирования и числа разбиений;

– внести изменения в модуль программно поддерживающий кнопку Вычислитьпользовательской формы Вычисление определённого интеграла в VBA в части обращения через объект OptionButton4к вновь созданным модулям вычисления определённого интеграла с новой подынтегральной.

Это достаточно легко выполняется копированием уже существующих модулей.

 



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


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

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

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

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