Метод половинного деления, ошибка кода - VBA

Узнай цену своей работы

Формулировка задачи:

Добрый день, сломал всю голову - но не работает код, выдает ошибку - деление на ноль, все переменные указал. Ткните пальцем - где ошибка. Код:

Решение задачи: «Метод половинного деления, ошибка кода»

textual
Листинг программы
Option Explicit
Dim x1 As Double, x2 As Double, f As Double, E As Double
Dim pa As Double, pb As Double, tt As Double
Dim ra As Double, rb As Double, RC As Double
 
Sub lab6()
pa = Range("C7").Value
pb = Range("C8").Value
tt = Range("C9").Value
ra = Range("C10").Value
rb = Range("C11").Value
E = Range("C12").Value
 
x1 = ra: x2 = rb
 
If Fun(x1) * Fun(x2) > 0 Then
MsgBox "Функция в интревале (" & x1 & " - " & x2 & ") знака не меняет"
Exit Sub
End If
 
Metka:
RC = (x1 + x2) / 2
f = Fun(RC)
If Abs(f) <= E Then
Range("B15").Value = RC
Range("B16").Value = f
Exit Sub
End If
 
If f * Fun(x1) < 0 Then x2 = RC Else x1 = RC
GoTo Metka
 
End Sub
 
Function Fun(RC) As Double
Fun = (pa - pb) / tt - 2 * Log(RC / x1) - 1 + (RC / x2) ^ 2
End Function

Оцени полезность:

14   голосов , оценка 4 из 5