Re: [R] Help with iteration using while loop

From: Steve Lianoglou <mailinglist.honeypot_at_gmail.com>
Date: Fri, 04 Jun 2010 14:14:30 -0400

Code inline:

On Fri, Jun 4, 2010 at 1:30 PM, Subodh Acharya <shoebodh_at_gmail.com> wrote:
> Hello everyone,
>
> I am trying to use while loop to iterate a function until convergence. But I
> am having problem when I try to use a fixed number of iterations.
> Say I want to use maximum iteration of 150. If the value don't converge
> within maximum iteration, show warning of no convergence.
>
> Currently I don't have non- convergence problem so I think my code works
> fine. But in future I may encounter such problem that are likely to not
> converge easily.
>
> Below is my function that is working when I don't provide maximum iteration.
>
> iter<- function (Fpi, Time, tolerance){
> S = 22.4
> Ts = 0.499
> Ti = 0.25
> K = 0.044
> r<- 1.5
> M = Ts- Ti
> Ks = 0.044
>     Fpt = K*Time + M*S*log(1+ Fpi/(M*S))
>       while((Fpt-Fpi) > tolerance) {
>         Fpi = Fpt
>             Fpt = K*Time + M*S*log(1+ Fpi/(M*S))
>     Fp0 = Fpt
>    }
>  return(Fpt)
> }
> x<- iter(Fpi = 0.224, Time = 0.2, tolerance = 0.000001)

Add a counter variable and a second check in your `while` criteria:

...
...
iter <- 0
while (((Fpt - Fpi) > tolerance) && (iter < itermax)) {

  Fpi = Fpt
  Fpt = K*Time + M*S*log(1+ Fpi/(M*S))
  Fp0 = Fpt

  iter <- iter + 1
}
-- 
Steve Lianoglou
Graduate Student: Computational Systems Biology
 | Memorial Sloan-Kettering Cancer Center
 | Weill Medical College of Cornell University
Contact Info: http://cbio.mskcc.org/~lianos/contact

______________________________________________
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.
Received on Fri 04 Jun 2010 - 18:16:17 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 Fri 04 Jun 2010 - 18:20:27 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.

list of date sections of archive