Решение нелинейного и трансцендентного уравнения с помощью авторского программного продукта, созданного в среде программирования VBA.

В среде разработки Visual Basic for Applications MS Word создали программу для решения уравнения f(x)=0на отрезке [а, b].

 

Алгоритм выполнения задания:

 

1. Разработали алгоритм:

А) разделим отрезок [а, b] на две равные половины - [а, c] и [c, b];

Б) определили, на какой половине отрезка [а, b] находится корень: если корень находится между точками a и c, то b = c, иначе a = c;

С) проверили

2.Создали интерфейс программы(Рисунок 1):

Рисунок 1. Создание интерфейса программы.

3. Исходный код:

Function f(x)

f = Sin(Log(x)) - Cos(Log(x)) + 2 * Log(x)

End Function

 

Private Sub btn_K_Click()

a = txt_a

b = txt_b

txt_faK = f(a)

Do

c = (b + a) / 2

If f(a) * f(c) > 0 Then a = c Else b = c

Loop While b - a > 0.001

txt_xK = Round((b + a) / 2, 7)

End Sub

 

Private Sub txt_a_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0

End Sub

 

Private Sub txt_b_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0

End Sub

 

Private Sub txt_fa_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0

End Sub