Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

newton_raphson

Newton Raphson iteration to find roots of equations


Description

Newton-Raphson iteration to find roots of equations with the emphasis on complex functions

Usage

newton_raphson(initial, f, fdash, maxiter, give=TRUE, tol = .Machine$double.eps)

Arguments

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 TRUE meaning to give output based on that of uniroot() and FALSE meaning to return only the estimated root

tol

Tolerance: iteration stops if |f(z)|<tol

Details

Bog-standard implementation of the Newton-Raphson algorithm

Value

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.

Note

Previous versions of this function used the misspelling “Rapheson”.

Author(s)

Robin K. S. Hankin

Examples

# 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)

elliptic

Weierstrass and Jacobi Elliptic Functions

v1.4-0
GPL-2
Authors
Robin K. S. Hankin [aut, cre] (<https://orcid.org/0000-0001-5982-0415>)
Initial release

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.