[R] Non-linear system of equations

Paul Smith phhs80 at gmail.com
Fri Apr 25 11:57:49 CEST 2008


2008/4/25 Radka Pancheva <radica at abv.bg>:
>  I am trying to estimate the parameters of a bimodal normal distribution using moments matching, so I have to solve a non-linear system of equations. How can I solve the following simple example?
>
>  x^2 - y^2 = 6
>  x – y = 3
>
>  I heard about nlsystemfit, but I don't know how to run it exactly. I have tried the following code, but it doesn't really work:
>
>
>  f1 <-y~ x[1]^2-x[2]^2-6
>  f2 <-z~ x[1]-x[2]-3
>  f  <- list(f1=0,f2=0)
>  nlsystemfit("OLS",f,startvals=c(0,0))

You could try the recent package BB by Ravi Varadhan. The code could
be the following:

library(BB)

f <- function(x) {
  x1 <- x[1]
  x2 <- x[2]

  F <- rep(NA, 2)

  F[1] <- x1^2 - x2^2 - 6
  F[2] <- x1 - x2 - 3

  return(F)
}

p0 <- c(1,2)
dfsane(par=p0, fn=f,control=list(maxit=3000))

I got the solution:

x1 = 2.5
x2 = -0.5

Paul



More information about the R-help mailing list