| newtonsys | R Documentation | 
Newton's method applied to multivariate nonlinear functions.
newtonsys(Ffun, x0, Jfun = NULL, ...,
    	  maxiter = 100, tol = .Machine$double.eps^(1/2))
| Ffun | 
 | 
| Jfun | Function returning a square  | 
| x0 | Numeric vector of length  | 
| maxiter | Maximum number of iterations. | 
| tol | Tolerance, relative accuracy. | 
| ... | Additional parameters to be passed to f. | 
Solves the system of equations applying Newton's method with the univariate derivative replaced by the Jacobian.
List with components: zero the root found so far, fnorm the
square root of sum of squares of the values of f, and iter the
number of iterations needed.
TODO: better error checking, e.g. when the Jacobian is not invertible.
Quarteroni, A., R. Sacco, and F. Saleri (2007). Numerical Mathematics. Second Edition, Springer-Verlag, Berlin Heidelberg.
newtonRaphson, broyden
##  Example from Quarteroni & Saleri
F1 <- function(x) c(x[1]^2 + x[2]^2 - 1, sin(pi*x[1]/2) + x[2]^3)
newtonsys(F1, x0 = c(1, 1))  # zero: 0.4760958 -0.8793934
##  Find the roots of the complex function sin(z)^2 + sqrt(z) - log(z)
F2 <- function(x) {
    z  <- x[1] + x[2]*1i
    fz <- sin(z)^2 + sqrt(z) - log(z)
    c(Re(fz), Im(fz))
}
newtonsys(F2, c(1, 1))
# $zero   0.2555197 0.8948303 , i.e.  z0 = 0.2555 + 0.8948i
# $fnorm  2.220446e-16
# $niter  8
##  Two more problematic examples
F3 <- function(x)
        c(2*x[1] - x[2] - exp(-x[1]), -x[1] + 2*x[2] - exp(-x[2]))
newtonsys(F3, c(0, 0))
# $zero   0.5671433 0.5671433
# $fnorm  0
# $niter  4
## Not run: 
F4 <- function(x)  # Dennis Schnabel
        c(x[1]^2 + x[2]^2 - 2, exp(x[1] - 1) + x[2]^3 - 2)
newtonsys(F4, c(2.0, 0.5))
# will result in an error ``missing value in  ... err<tol && niter<maxiter''
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.