A rather crude approach to solving nonlinear equations is to rewrite the
equations as residuals and minimize the sum of squares. A zero sumsquares
gives a solution. It is NOT guaranteed to work, of course.

I recommend a Marquardt approach  minpack.lm::nlslm or my nlsr::nlfb. You
will need to specify a function for the jacobian (derivatives of the residuals
w.r.t. the parameters) for the latter package, but it does handle bounds
correctly. Bounds in minpack.lm can be specified but I've a couple of failed
cases, though I'll caution that in this area the scaling is such that all
packages can be made to fail in some cases.

I can send the latest developmental version of the nlsr package with some
updates to make use of jacobians easier if you take that route.

JN


On 2022-11-15 02:49, ASHLIN VARKEY wrote:
In my work, I use l-moments for estimation and obtain a system of
nonlinear equations. I am using the 'nleqslv' package in the R- program to
solve these equations but am struggling to choose initial values. Is there
any criteria to choose initial values in this package or is there any other
method to solve these equations?  My system of equations are given below.

  simeqn=function(x){

   y=numeric(4)

   y[1]=x[1]*(((gamma(1+x[2])*gamma(x[3]-x[2]))/gamma(x[3]))+((gamma(1-
x[2])*gamma(x[4]+x[2]))/gamma(x[4])))- 38353


y[2]=x[1]*gamma(1+x[2])*((gamma(x[3]-x[2])/gamma(x[3]))-(gamma(2*x[3]-x[2])/gamma(2*x[3]))-(gamma(x[4]+x[2])/gamma(x[4]))+(gamma(2*x[4]+x[2])/gamma(2*x[4])))-
3759.473


y[3]=x[1]*gamma(1+x[2])*((gamma(x[3]-x[2])/gamma(x[3]))-(3*gamma(2*x[3]-x[2])/gamma(2*x[3]))+(2*gamma(3*x[3]-x[2])/gamma(3*x[3]))+(gamma(x[4]+x[2])/gamma(x[4]))-(3*gamma(2*x[4]+x[2])/gamma(2*x[4]))+(2*gamma(3*x[4]+x[2])/gamma(3*x[4])))-
966.3958

   y[4]=
x[1]*gamma(1+x[2])*((gamma(x[3]-x[2])/gamma(x[3]))-(6*gamma(2*x[3]-x[2])/gamma(2*x[3]))+(10*gamma(3*x[3]-x[2])/gamma(3*x[3]))-(5*gamma(4*x[3]-x[2])/gamma(4*x[3]))-(gamma(x[4]+x[2])/gamma(x[4]))+(6*gamma(2*x[4]+x[2])/gamma(2*x[4]))-(10*gamma(3*x[4]+x[2])/gamma(3*x[4]))+(5*gamma(4*x[4]+x[2])/gamma(4*x[4])))-
500.952

   y

}

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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 -- To UNSUBSCRIBE and more, see
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.

Reply via email to