我有以下问题。我试图计算这样的函数:
derivation <- function(function, number) {
derivation <- deriv(~function, "x")
return(derivation(number))
}例如:
derivation(x^2, 3) {
derivation <- 2*x
return(2*3)
}我不在乎我是否要把函数放在大括号或表达式的开头。变量将始终是x。也可以使用D。
发布于 2017-09-20 12:24:48
一种可能性是:
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中删除属性)。
https://stackoverflow.com/questions/46321883
复制相似问题