失败函数:导数近似

时间:2017-04-11 11:29:22

标签: r function loops derivative

对R.非常新。我正在尝试编写一个函数来逼近任何给定函数diff.quot2 <- function(a, h=.0001) { b <- a(1:100) c <- numeric(0) for (i in length(b)) { c[i] <- ((b[i] + h) - b[i])/h} return(c)} 的推导:

func.1

所以我将以下功能保存为func.1 <- function(x) { (-log(x))/(1+x)}

diff.quot2

但是当我把它插入diff.quot2(func.1) 时,我得到了一个充满NA的矢量:

diff.quot2

有关我做错的任何见解?部分地查看a(1:100)func.1(1:100)应该给我1:100(它自己工作,给我一个从x = 1到x = 100的所有值f(x)的向量)。我很困惑。任何帮助将不胜感激。

编辑:

@李哲源ZheyuanLi感谢您注意h!

的错位

@rbm是的,没有理由选择1:6。但我测试的实际间隔是b,所以我改变了它。我意识到我不需要定义向量diff.quot2 <- function(a, x, h=.0001) { c <- numeric(0) for (i in 1:length(seq(0, 6, by=0.5))) { c[i] <- (a(seq(0+h, 6+h, by=0.5))[i]-a(seq(0, 6, by=0.5))[i])/h} return(c)}

以下代码有效:

{{1}}

我的后续问题:这可以减少,还是最短的?感谢您的帮助。

0 个答案:

没有答案