user8878064
user8878064

Reputation: 71

How can I get derivative value in R?

I want to get the derivative value from the function below when x = 2. Is there way to keep the form of the function and also get derivative value with out any additional package?

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

For example, I have tried below but they didn't work.

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

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

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

Upvotes: 7

Views: 18016

Answers (2)

information_interchange
information_interchange

Reputation: 3118

You can use deriv, however, one caveat is that you can only use expressions/calls.

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

With a named expression:

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

and the rest is the same.

See this link for the documentation: https://www.rdocumentation.org/packages/Deriv/versions/3.8.2/topics/Deriv

Upvotes: 11

d.b
d.b

Reputation: 32548

This would be approximation

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

Upvotes: 7

Related Questions