Imports System.Math
Public Class Form1
Dim s As Single
Dim a, a0 As Single
Dim b, b0 As Single
Dim c As Single
Dim n As Integer
Dim f As Double
Dim fb, fc As Double
Dim ee As Double
Dim p As Double
Public Sub vvod()
ee = Val(TextBox4.Text)
End Sub
Public Sub reshenie()
a0 = 0.8
b0 = 1.2
a = 0.8
b = 1.2
c = (a + b) / 2
n = 0
s = 0.95025249
Do
n = n + 1
fc = c - Cos(c / 3)
fb = b - Cos(b / 3)
If fc * fb < 0 Then a = c Else b = c
c = (a + b) / 2
f = c - Cos(c / 3)
p = Abs(s - c)
Loop Until (b0 - a0) / 2 ^ n <= ee
End Sub
Public Sub otvet()
TextBox1.Text = CStr(n)
TextBox2.Text = CStr(c)
TextBox3.Text = CStr(f)
TextBox5.Text = CStr(p)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
vvod()
reshenie()
otvet()
End Sub
End Class
Результат выполнения программы
Результаты расчета на ПК с различной точностью
E | n | x | f(x) |
0. 01 | 0,953125 | 0,00317119341299776 | |
0. 001 | 0,9503906 | 0,00015242956897854 | |
0.0001 | 0,9502441 | -9,22535053682338E-06 |
Оценка погрешности результата
ε | Погрешность |
0.01 | 0,0028725266456604 |
0.001 | 0,00013810396194458 |
0.0001 | 8,34465026855469E-06 |
Зависимость n(lnE)
ε | 0.01 | 0.001 | 0.0001 |
n |