R 为二分法设置最大迭代次数?
如何为以下二分法代码设置最大迭代次数=20?我应该只在假期工作还是做别的R 为二分法设置最大迭代次数?,r,maximize,R,Maximize,如何为以下二分法代码设置最大迭代次数=20?我应该只在假期工作还是做别的 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 <-
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)
}
rf.bisection将while中的条件更改为while(abs(diff)>tol&feval这只会给你18次迭代,除非你用0初始化feval
。@eugen,你是对的,我在考虑函数求值,修正了。@Gucci如果你认为这个答案足够好,请将它标记为已接受,这样问题就不会显示在未回答的问题列表中。我做了,但系统让我等待大概7分钟。对不起,我忘了时间限制。