Re: [R] Creatiing an R package for solving nonlinear system ofequations was: RE: finding roots of multivariate equation

From: Ravi Varadhan <rvaradhan_at_jhmi.edu>
Date: Tue, 26 Jun 2007 13:17:14 -0400

Local minima, other than the actual roots, will be present only when the Jacobian of the system is singular. If the Jacobian is well-behaved then there should be no problem, although this is hard to verify in practice. Furthermore, as I had pointed out in one of my previous emails, if convergence to a local optimum takes place, you simply restart the procedure with another initial value.

Ravi.



Ravi Varadhan, Ph.D.

Assistant Professor, The Center on Aging and Health

Division of Geriatric Medicine and Gerontology

Johns Hopkins University

Ph: (410) 502-2619

Fax: (410) 614-9625

Email: rvaradhan_at_jhmi.edu

Webpage: http://www.jhsph.edu/agingandhealth/People/Faculty/Varadhan.html  



-----Original Message-----
From: Rob Creecy [mailto:rcreecy_at_census.gov] Sent: Tuesday, June 26, 2007 1:01 PM
To: Ravi Varadhan
Cc: r-help_at_stat.math.ethz.ch; 'Bill Shipley' Subject: Re: [R] Creatiing an R package for solving nonlinear system ofequations was: RE: finding roots of multivariate equation

This seems useful, but it is important to note that the approach may not work well
unless the system of nonlinear equations is very well behaved and a good starting
point is chosen. A good explanation of the problems with this exact approach, that
is adding up the sums of squares of the individual functions, is described in Numerical Recipes for C, second edition, p 382 (see http://www.nrbook.com/a/bookcpdf.php)
Briefly there will often be a great number of local minima even when there is only a single
root of the original equations.

Rob

Ravi Varadhan wrote:
> Hi,
>
> I have written a simple function to solve a system of nonlinear equations.
I
> have called it nlsolve(). It actually minimizes the squared-norm of the
set
> of functions by calling optim(). It uses the BFGS algorithm within
optim().
> Apart from this restriction, the user can pass all the arguments available
> in optim(). All the control parameters can be passed as in the call to
> optim(). I have attached a text file containing the source for nlsolve()
> and also a number of test problems illustrating the use of nlsolve(). Any
> feedback and suggestions to improve it are welcome.
>
> Hope this is useful.
>
> Best,
> Ravi.
>
>



> -------
>
> Ravi Varadhan, Ph.D.
>
> Assistant Professor, The Center on Aging and Health
>
> Division of Geriatric Medicine and Gerontology
>
> Johns Hopkins University
>
> Ph: (410) 502-2619
>
> Fax: (410) 614-9625
>
> Email: rvaradhan_at_jhmi.edu
>
> Webpage: http://www.jhsph.edu/agingandhealth/People/Faculty/Varadhan.html
>
>
>
>


> --------
>
> -----Original Message-----
> From: r-help-bounces_at_stat.math.ethz.ch
> [mailto:r-help-bounces_at_stat.math.ethz.ch] On Behalf Of Ravi Varadhan
> Sent: Wednesday, June 20, 2007 5:23 PM
> To: r-help_at_stat.math.ethz.ch
> Subject: [R] Creatiing an R package for solving nonlinear system of
> equations was: RE: finding roots of multivariate equation
>
> Hi All,
>
> Replying to this and numerous other requests in the past has made me
realize
> that a nonlinear solver is very much needed for R users. I have
> successfully used a nonlinear solver based on the spectral gradient
method,
> in FORTRAN. I can readily translate that to R and make it available as an
R
> function, but what I would really like to do is to make that into a
package.
> I can provide the R function and several test examples. But I am not good
> at creating a good/reliable package. So, it would be ideal if one of the
R
> gurus is interested in collaborating with me on this project. Any one
> interested?
>
> Ravi.
>


> -------
>
> Ravi Varadhan, Ph.D.
>
> Assistant Professor, The Center on Aging and Health
>
> Division of Geriatric Medicine and Gerontology
>
> Johns Hopkins University
>
> Ph: (410) 502-2619
>
> Fax: (410) 614-9625
>
> Email: rvaradhan_at_jhmi.edu
>
> Webpage: http://www.jhsph.edu/agingandhealth/People/Faculty/Varadhan.html
>
>
>
>


> --------
>
> -----Original Message-----
> From: r-help-bounces_at_stat.math.ethz.ch
> [mailto:r-help-bounces_at_stat.math.ethz.ch] On Behalf Of Bill Shipley
> Sent: Wednesday, June 20, 2007 1:37 PM
> To: r-help_at_stat.math.ethz.ch
> Subject: [R] finding roots of multivariate equation
>
> Hello,
> I want to find the roots of an equation in two variables. I am aware of
the
> uniroot function, which can do this for a function with a single variable
> (as I
> understand it...) but cannot find a function that does this for an
equation
> with more than one variable. I am looking for something implementing
> similar
> to a Newton-Raphson algorithm.
> Thanks.
>
>
> ------------------------------------------------------------------------
>
> ______________________________________________
> 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
> and provide commented, minimal, self-contained, reproducible code.
>


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 and provide commented, minimal, self-contained, reproducible code. Received on Tue 26 Jun 2007 - 17:24:04 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Tue 26 Jun 2007 - 17:32:31 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.