我想根据索引i = 1,... k来编程x的k个函数的总和,并且还取决于点x0(它看起来有点像泰勒公式)。但是,以下代码生成错误消息:
错误:评估嵌套太深:无限递归/选项(表达式=)?
换行时出错:评估嵌套太深:无限递归/选项(表达式=)?
如果有人可以帮助改进它,我将不胜感激:
{{1}}
答案 0 :(得分:3)
你需要递归吗?这是你想要做的吗?
cum_f <- function(x, x0, k){
i <- 1
p <- x0**2
while(i <= k){
p <- p + (x - x0)**i
i = i + 1
}
return(p)
}
cum_f(10,1,5)
# 66430
您可以使用此功能获得相同的结果
cum_f <- function(x, x0, k){
val <- Reduce("+", c(x0**2, (x-x0)**(1:k)), accumulate=TRUE)
return(tail(val,1))
}
甚至更简单(感谢罗兰)
cum_f <- function(x, x0, k){
val <- x0^2 + sum((x-x0)^(1:k))
return(val)
}
cum_f(10,1,5)
# 66430