Ошибка в get (as.character (FUN), mode = «function», envir = envir)

Я новичок в R, так что прости меня, если вопрос немного глупый. Я пытаюсь написать простой цикл while для итерации функции-значения. Моя функция (optim.routine) использует решатель ipoptr. Вот мой код:

d<-1
old1<-0
old2<-0
num.iter<-0
i.esp<-1e-05
i.T<-100
lb<-0
ub<-10

while (d>i.eps & num.iter<i.T){
new1 <- optim.routine(old1, old2, eval_f=eval_f, eval_grad_f=eval_grad_f, lb=lb, ub=ub, update=FALSE)
d<-dist(c(old1, new1), method="euclidean")
num.iter<-num.iter+1
old1<-new1
}

где optim.routine - это следующая функция:

optim.routine<-function(old1, old2, eval_f=obj, eval_grad_f=obj.deriv, lb=lb, ub=ub, update){
  if (isTRUE(update)){
    var2<-old2
    var1<-old1
    var1.deriv<-deriv(var1)
    optimize <- ipoptr(x0 = old2, eval_f = eval_f, eval_grad_f = eval_grad_f, lb = lb,
                       ub = ub)

    new1<- optimize$objective
    new2<- optimize$solution
    old2<-new2
    old1<-new1
  }else{
    var2<-old2
    var1<-old1
    var1.deriv<-vf.deriv(var1)
    optimize <- ipoptr(x0 = old2, eval_f = eval_f, eval_grad_f = eval_grad_f, lb = lb,
                       ub = ub)

    new1<- optimize$objective
    new2<- optimize$solution
    old1<-new1
  }
}

и производная функция, которая вычисляет производные.

Я получаю следующую ошибку, если я пытаюсь запустить код:

source('/mnt/ide0/home/myname/Documents/optim.R')
Error in get(as.character(FUN), mode = "function", envir = envir) : 
  object 'fn' of mode 'function' was not found

и если я отлаживаю функцию:

Browse[2]> n
Error in isTRUE(update) : argument "update" is missing, with no default

Если я использую только функцию без цикла while, ошибка не отображается. Честно говоря, я понятия не имею. Любая помощь очень ценится. Спасибо!

Клаудиа

Ответы на вопрос(2)

Ваш ответ на вопрос