[R] solving system of nonlinear equations

Enayetur RAHEEM raheem at gmail.com
Sat Nov 20 18:10:35 CET 2004


R version: 2.0.0
OS: WinXP, SP2

I am using "nls" to estimate parameters of a system of nonlinear
equations. Although, iteration is not converging, I would like to get
the final estimates and store them in the object, say, "RR".

Any help would be appreciated. Thanks. 

The following is not working ( I mean, I can not store it in "RR")

RR=nls(k~exp(-(q1-lam)/sig)+exp(-(q2-del)/tau),start=st,data=d1,trace=T,control=ctrl)
13.24433 :  30 30 15 10 
3.90071 :  33.00603 38.86974 20.18227 10.15656 
0.02326074 :  31.44802 36.80447 20.01395 10.07528 
1.209036e-06 :  31.39755 36.58548 19.99954 10.05675 
1.543785e-15 :  31.39752 36.58347 19.99947 10.05640 
1.030527e-29 :  31.39752 36.58347 19.99947 10.05640 
8.019572e-31 :  31.39752 36.58347 19.99947 10.05640 
8.019572e-31 :  31.39752 36.58347 19.99947 10.05640 
8.019572e-31 :  31.39752 36.58347 19.99947 10.05640 
8.019572e-31 :  31.39752 36.58347 19.99947 10.05640 
8.019572e-31 :  31.39752 36.58347 19.99947 10.05640 
Error in nls(k ~ exp(-(q1 - lam)/sig) + exp(-(q2 - del)/tau), start = st,  : 
        number of iterations exceeded maximum of 10



On Sun, 14 Nov 2004 17:09:06 -0800, Spencer Graves
<spencer.graves at pdf.com> wrote:
>       Have you considered "nls"?  If you read the help file and work
> through the examples, there is a good chance you can make it work, I
> think.  I think I would start trying "plinear" in "nls", parameterizing
> the problem in terms of alpha, beta, ln.sigma, and ln.tau, unless you
> think a solution might require sigma < 0 or tau < 0.  Using logarithms
> will get rid of the constraint and may make the problem numerically
> easier.  Using alpha and beta rather than lambda and delta transforms
> the problem into an ordinary least squares problem for alpha and beta
> given any two numbers for sigma and tau (or ln.sigma and ln.tau).
> 
>       If I had trouble with this, I might try two other things:
> 
>       (a) The "solver" in Excel.
> 
>       (b) I might generate a grid in ln.sigma and ln.tau using
> expand.grid.  For each combination of levels, I'd set up the linear
> regression problem and use "lm" to estimate alpha and beta and compute
> and store the sum of squares of residuals.  Then I'd use "contour" to
> visualize the sum of squares surface.
> 
>       I've done all these things with crudely similar problems in the
> past and been happy with the results.  If I only had this one problem,
> I'd be surprised if it would require more than a few hours.  If I wanted
> a general algorithm for other purposes, I might do it two or three
> different ways both to help select a good algorithm and to build
> confidence in the results.
> 
>       hope this helps.
>       spencer graves
> p.s.  Some of these techniques are discussed in Venables and Ripley
> (2002) Modern Applied Statistics with S, 4th ed. (Springer).  If you
> don't have this, I'd encourage you to consider spending some time with it.
> 
> 
> 
> Enayetur RAHEEM wrote:
> 
> >Hello there
> >
> >Can anybody please tell me if there is any package in R to solve the
> >following 4 nonlinear equations with 4 unknowns:
> >
> >alpha*exp(20/sigma)+ beta*exp(21/tau) = 2
> >alpha*exp(22/sigma)+ beta*exp(9/tau) = 4
> >alpha*exp(10/sigma)+ beta*exp(30/tau) = 6
> >alpha*exp(40/sigma)+ beta*exp(39/tau) = 5
> >
> >where
> >
> >alpha = exp(lambda/sigma)
> >beta= exp(delta/tau)
> >
> >I need to estimate lambda, sigma, delta, tau
> >
> >Thanks.
> >E Raheem
> >
> >______________________________________________
> >R-help at stat.math.ethz.ch mailing list
> >https://stat.ethz.ch/mailman/listinfo/r-help
> >PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
> >
> >
> 
> -- 
> Spencer Graves, PhD, Senior Development Engineer
> O:  (408)938-4420;  mobile:  (408)655-4567
> 
>




More information about the R-help mailing list