Repository
Current version released
3 years ago
Dependencies
std
Versions
sqrt-newton
Calculate square roots using the Newton-Raphson method.
For univariate differentiable functions between real numbers, the Newton-Raphson method is an iterative root finding method that works by repeatedly finding the intersection between the tangent of a function at the current guess, and the f(x) == 0
line.
Having our current guess n0
, we can calculate n1 = n0 - f(n0)/diff(f)(n0)
.
That means that we can easily devise calculating a square root using the following method:
- Take equation
x == sqrt(n)
- Square both sides
x*x == n
(this implies that our algorithm only works for a non-negative n) - Subtract n from both sides
x*x - n == 0
. This is ourf(x)
- Get derivative
2*x
- Get recurrence relation
x1 = x0 - (x0*x0 - n)/(2*x0)
- Iterate until satisfied with precision