Решение нелинейного и трансцендентного уравнения с помощью авторского программного продукта, созданного в среде программирования 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