[R] Solving a equation

Berend Hasselman bhh at xs4all.nl
Sun Aug 14 22:24:54 CEST 2011


B. Jonathan B. Jonathan wrote:
> 
> Hi there, I have following equations to be solved for a and b:
> 
> a/(a+b) = x1
> ab/((a+b)^2 (a+b+1)) = x2
> 
> Is there any direct function available to solve them without
> disentangling them manually? Thanks for your help.
> 

There is a package nleqslv that will solve a system of equations with either
a Newton or Broyden method.

You can do this

library(nleqslv)

# trial values

x1 <- .6
x2 <- .2

eqn <- function(par) {
    a <- par[1]
    b <- par[2]
    f <- numeric(2)
    
    f[1] <- a/(a+b) - x1 
    f[2] <- a*b/((a+b)^2 * (a+b+1)) - x2 
                                 
    f
} 

pstart <- c(1,1)

nleqslv(pstart,eqn,control=list(trace=1))

#or this if you don't need the trace

nleqslv(pstart,eqn)

There is also a package BB that uses different methods and is especially
geared towards very large systems.

Berend


--
View this message in context: http://r.789695.n4.nabble.com/Solving-a-equation-tp3743338p3743449.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list