• Предмет: Информатика
  • Автор: yepboo4
  • Вопрос задан 4 месяца назад

Описать рекурсивную функцию Root (а, b, ε), которая методом деления отрезка пополам
находит с точностью ε корень уравнения f(x) = 0 на отрезке [а, b] (считать, что ε > 0, а< b,
f(a) - f(b) < 0 и f(x) — непрерывная и монотонная на отрезке [а, b] функция)
Python

Ответы

Ответ дал: asilvejstruk
2

def root(f, a, b, eps):

   # Calculate the midpoint of the interval

   mid = (a + b) / 2

   # If the interval is smaller than the precision, return the midpoint

   if abs(b - a) < eps:

       return mid

   # Recursively search for the root in the left or right interval

   if f(mid) > 0:

       return root(f, a, mid, eps)

   else:

       return root(f, mid, b, eps)

# Test the function

def f(x):

   return x**2 - 2

print(root(f, 0, 2, 0.001))  # 1.4142135620117188

Вас заинтересует