如何在R中获得衍生价值?

时间:2017-11-03 02:07:27

标签: r derivative

我希望在x = 2时从下面的函数中得到导数值。有没有办法保留函数的形式,并且在没有任何附加包的情况下获得衍生价值?

f <- function(x)
  return(x^3)

例如,我在下面尝试了但是他们没有工作。

x=2
deriv(~f, "x")

x=2
deriv(~body(f),"x")

x=2
D(expression(f),"x")

2 个答案:

答案 0 :(得分:5)

您可以使用deriv,但有一点需要注意you can only use expressions/calls

derivative = deriv(~ x^3, "x") 
x <- 2
eval(derivative )

使用命名表达式:

f = expression(x^3)
dx2x <- D(f,"x")

其余的都是一样的。

请参阅此链接以获取文档: https://www.rdocumentation.org/packages/Deriv/versions/3.8.2/topics/Deriv

答案 1 :(得分:3)

这将是近似值

foo = function(x, delta = 1e-5, n = 3){
    x = seq(from = x - delta, to = x + delta, length.out = max(2, n))
    y = x^3
    mean(diff(y)/diff(x))
}

foo(2)
#[1] 12