Radka, Generally, there is no need to increase `maxit' to beyond default. If you are unable to obtain a reasonable approximation to your system within `maxit', then you should do the following (not necessarily in that order):
1. Try a few different starting values and see if you can obtain a residual closer to zero. 2. Try a different method within "dfsane", try method=1 or method=3. 3. If neither (1) nor (2) works, then try a different algorithm, "sane". 4. If none of the above steps is successful, then check your function definition carefully for possible errors. Ravi. ---------------------------------------------------------------------------- ------- Ravi Varadhan, Ph.D. Assistant Professor, The Center on Aging and Health Division of Geriatric Medicine and Gerontology Johns Hopkins University Ph: (410) 502-2619 Fax: (410) 614-9625 Email: [EMAIL PROTECTED] Webpage: http://www.jhsph.edu/agingandhealth/People/Faculty/Varadhan.html ---------------------------------------------------------------------------- -------- -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Radka Pancheva Sent: Friday, April 25, 2008 8:13 AM To: R-help@r-project.org Subject: Re: [R] Non-linear system of equations Hello Paul, Thank you for your quick answer. I have tried to use your advice and to estimate the parameters of beta distribution with moments matching. This is my code: ex <- 0.3914877 ex2 <- 0.2671597 my.mm <- function(x){ p <- x[1] q <- x[2] p <- .Machine$double.eps q <- .Machine$double.eps F <- rep(NA,2) F[1] <- p/(p + q) F[2]<- (p*q + (p + q + 1)*p^2)/((p + q + 1)*(p + q)^2) return(F) } p0 <- c(ex,ex2) dfsane(par=p0, fn=my.mm,control=list(maxit=50000)) and I became the following output: . iteration: 3640 ||F(xn)|| = 0.7071068 iteration: 3641 ||F(xn)|| = 0. 7071068 . iteration: 49990 ||F(xn)|| = 0. 7071068 iteration: 50000 ||F(xn)|| = 0. 7071068 $par [1] -446.2791 -446.4034 $residual [1] 0.5 $fn.reduction [1] 0 $feval [1] 828495 $iter [1] 50001 $convergence [1] 1 $message [1] "Maximum limit for iterations exceeded" I have tried maxiter=100000 but the output is the same. I know that ex and ex2 are bringing the problems, but I am stuck with them. How can I make it convergent? Thank you, Evgeniq >2008/4/25 Radka Pancheva <[EMAIL PROTECTED]>: >> 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 > >______________________________________________ >R-help@r-project.org mailing list >https://stat.ethz.ch/mailman/listinfo/r-help >PLEASE do read the posting guide http://www.R-project.org/posting-guide.html >and provide commented, minimal, self-contained, reproducible code. > ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.