solving system of nonlinear equations
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