Считаем корень из двух БЕЗ КАЛЬКУЛЯТОРА

(почти)

Опубликовано BANANA DOG 8 марта 2022, 3 мин. на чтение

Недавно посмотрела интересное видео на ютубе, в котором сравниваются два способа поиска квадратного корня.

Мне стало интересно самой вычислить корень из двух по методу Ньютона, но считать я решила не на бумажке, а в питоне. Вот такая программка у меня вышла:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def f(x):
    return x**2-2

def f1(x):
    return 2*x

x=1 # начальное предположение 
epsilon=0.00000001 # допустимая погрешность
print("Поиск квадратного корня из двух по методу Ньютона")
print("изначальное значение x -", x)
print(f"Требуемая точность - {epsilon}")
for i in range(1, 100):
    xold=x
    x=x-f(x)/f1(x)
    delta=abs(xold-x)
    print(f"Шаг {i}, результат {x}, дельта", delta)
    if epsilon > delta:
        print(x, "Задача решена за", i, "шагов, дельта", delta)
        break

print("Значение корня из двух на калькуляторе -", 2**(1/2))

Я улучшила алгоритм программы: теперь алгоритм не выполняется больше ста раз и останавливается, если разница между двумя последними результатами меньше допустимой погрешности.

Код также доступен на гитхабе.