Learn R Programming

elliptic (version 1.2-9)

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

Value

  • If give is FALSE, returns $z$ with $|f(z)|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.

Details

Bog-standard implementation of the Newton-Raphson algorithm

Examples

Run this code
#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)

Run the code above in your browser using DataLab