[R] Non-linear system of equations
Paul Smith
phhs80 at gmail.com
Fri Apr 25 15:35:38 CEST 2008
Clearly, a family of solutions is
(p,q) = (0,k), with k != 0.
Paul
On Fri, Apr 25, 2008 at 1:58 PM, Paul Smith <phhs80 at gmail.com> wrote:
> Try to change the initial values of the parameters with, for instance,
>
> p0 <- rnorm(2)
>
> But you sure that your system has a solution, Evgeniq?
>
> Paul
>
>
>
>
> 2008/4/25 Radka Pancheva <radica at abv.bg>:
> > 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 <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
> > >
> >
> >
> > >______________________________________________
> > >R-help at 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 at 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.
> >
>
More information about the R-help
mailing list