Newton Raphson iteration to find roots of equations
Newton-Raphson iteration to find roots of equations with the emphasis on complex functions
newton_raphson(initial, f, fdash, maxiter, give=TRUE, tol = .Machine$double.eps)
initial |
Starting guess |
f |
Function for which f(z)=0 is to be solved for z |
fdash |
Derivative of function (note: Cauchy-Riemann conditions assumed) |
maxiter |
Maximum number of iterations attempted |
give |
Boolean, with default |
tol |
Tolerance: iteration stops if |f(z)|<tol |
Bog-standard implementation of the Newton-Raphson algorithm
If give
is FALSE
,
returns z with |f(z)|<tol; if TRUE
, returns a list
with elements root
(the estimated root), f.root
(the
function evaluated at the estimated root; should have small modulus),
and iter
, the number of iterations required.
Previous versions of this function used the misspelling “Rapheson”.
Robin K. S. Hankin
# Find the two square roots of 2+i: f <- function(z){z^2-(2+1i)} fdash <- function(z){2*z} newton_raphson( 1.4+0.3i,f,fdash,maxiter=10) newton_raphson(-1.4-0.3i,f,fdash,maxiter=10) # Now find the three cube roots of unity: g <- function(z){z^3-1} gdash <- function(z){3*z^2} newton_raphson(-0.5+1i,g,gdash,maxiter=10) newton_raphson(-0.5-1i,g,gdash,maxiter=10) newton_raphson(+0.5+0i,g,gdash,maxiter=10)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.