Подскажите, пожалуйста, алгоритм нахождения квадратного корня из числа (не sqrt(a) и не pow(a, 0.5)), а итерациями, вручную. Ответ должен быть не целочисленным, а точным, типа float
Язык - желательно C.
Ответ
Можно попробовать метод Ньютона. По сути, чтобы найти корень из числа S, надо решить уравнение f(x) = 0, где
Подставляя эту функцию в формулу для итераций метода Ньютона, получаем
Я набросал работающую программу на Python, можете по ней ориентироваться:
#!/usr/bin/python
import sys
s = float(sys.argv[1])
x = 1.0
while abs(x * x - s) > 0.00001:
x = (x * x + s) / 2. / x
print x
Комментариев нет:
Отправить комментарий