对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}}
我的后续问题:这可以减少,还是最短的?感谢您的帮助。