Learn R Programming

elliptic (version 1.5-0)

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)

Value

If argument 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.

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

Author

Robin K. S. Hankin

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