Страницы

Поиск по вопросам

понедельник, 29 октября 2018 г.

Квадратный корень из числа

Подскажите, пожалуйста, алгоритм нахождения квадратного корня из числа (не 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

Комментариев нет:

Отправить комментарий