[R] Newton method iteration problem

Charles C. Berry cberry at tajo.ucsd.edu
Sat Oct 27 06:28:57 CEST 2007


On Fri, 26 Oct 2007, Charles C. Berry wrote:

> On Fri, 26 Oct 2007, kevinchang wrote:
>
>>
>> Hi all,
>>
>> I am coding for finding the root of f(x)= phi(x) -alpha  where phi(x) is the
>> cumulative density function and alpha is constant . The problem right now is
>> I can't get the "initialX" representing the root out of the while loop when
>> ending , it seems to me it disappear when the loop ends accroding to the
>> error message. I need help . Please suggest the cause  or solution to this
>> problem. Thanks.
>
> Learn to type without making errors? Learn to format (space and indent)
> your code so errors will be more obvious to you??
>
> Your code worked for me once I corrected the typos and syntax errors.
>
> It even agrees with qnorm( setAlpha ).

Not quite.

I neglected to mention that I added a 'maxIter' variable that terminates 
the while loop after a few dozen passes.

Your loop will not terminate otherwise (unless you are uncommonly lucky).

There are lots of tricks for the unwary in writing optimization software.

So it is best to leave the details to the experts whenever possible.

Fortunately, R has well crafted optimizers available to the user. :-)


>
> If all you want is root finding capability, I suggest you see
>
>    ?uniroot
>
> and friends.
>
> HTH,
>
> Chuck
>
>>
>> # code
>>
>> #generate target function (phi(x)-alpha) (allow input x and alpha)
>> target<-function(x,alpha){
>> pnorm(x)-alpha
>> }
>>
>>
>> #generate the first derivative of the of the target function
>> firstDerivative<-function(x){
>> exp(-(x^2)/2)/sqrt(2*pi)
>> }
>>
>> # Finding the root by Newton method
>> rootFinding<-function(initialX,setAlpha){
>> while(target(initialX,setAlpha)!=0){
>> initialX<-initialX-(target(initialX,setAlpha)/firstfirstDerivative(initialX)
>> }
>> initialX
>> }
>>
>>
>> --
>> View this message in context: http://www.nabble.com/Newton-method-iteration-problem-tf4701085.html#a13439031
>> Sent from the R help mailing list archive at Nabble.com.
>>
>> ______________________________________________
>> R-help at r-project.org 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.
>>
>
> Charles C. Berry                            (858) 534-2098
>                                             Dept of Family/Preventive Medicine
> E mailto:cberry at tajo.ucsd.edu	            UC San Diego
> http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego 92093-0901
>
> ______________________________________________
> R-help at r-project.org 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.
>

Charles C. Berry                            (858) 534-2098
                                             Dept of Family/Preventive Medicine
E mailto:cberry at tajo.ucsd.edu	            UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego 92093-0901



More information about the R-help mailing list