1

次の二分法コードの最大反復回数=20に設定するにはどうすればよいですか?私はfevalだけに取り組むべきですか、それとも何か他のものに取り組むべきですか?

rf.bisection <- function(f, lower, upper, tol=1e-4) { 
flow <- f(lower) 
fupper <- f(upper) 
feval <- 2 

if (flow * fupper > 0) stop("The given interval does not contain the root!
\n") 
diff <- upper - lower 

while (abs(diff) > tol) { 
    newpoint <- (lower + upper) / 2 
    newf <- f(newpoint) 
    if (abs(newf) <= tol) break 
    if (flow * newf < 0) upper <- newpoint 
    if (fupper * newf < 0) lower <- newpoint 
    diff <- upper - lower 
    feval <- feval + 1 
} 
list(x = newx, value = newf, fevals=feval) 
} 
4

1 に答える 1

2

while条件をに変更しますwhile (abs(diff) > tol & feval<22)。22最初の反復fevalではすでに2であるため。

于 2013-03-09T19:17:30.280 に答える