使用deri或D作为函数的一部分

时间:2017-09-20 12:16:33

标签: r

我遇到了以下问题。我正在尝试计算如下函数:

derivation <- function(function, number) {  
  derivation <- deriv(~function, "x")  
  return(derivation(number))  
}

例如:

derivation(x^2, 3) {  
  derivation <- 2*x  
  return(2*3)  
}

我不在乎是否必须将函数放在大括号中或作为表达式。变量始终为x。也可以使用D

1 个答案:

答案 0 :(得分:3)

一种可能性:

f <- function(fun,val) {
   expr <- substitute(fun)
   d <- deriv(expr,"x",function.arg=TRUE)
   g <- attr(d(val),"gradient")
   return(g)
}
f(x^2,3)
  • substitute()将参数fun转换为表达式,不用评估它
  • deriv(...,function.arg=TRUE)返回一个计算值的函数,并将衍生项包含为属性
  • d(val)调用函数
  • attr(.,"gradient")提取渐变

如果要返回函数值及其渐变(作为双元素向量),可以使用

r <- d(val)
return(c(c(r),attr(r,"gradient"))
函数中的

(内部c(r)删除了r)的属性。