R语言 计算一个表达式的导数 – deriv()和D()函数
在R编程中,函数的导数可以用 deriv() 和 D() 函数来计算。它被用来计算简单表达式的导数。
语法:
deriv(expr, name)
D(expr, name)
参数:
expr: 代表一个表达式或一个没有LHS的公式
name: 代表将被计算导数的字符向量
例1 :
# Expression or formula
f = expression(x^2 + 5*x + 1)
# Derivative
cat("Using deriv() function:\n")
print(deriv(f, "x"))
cat("\nUsing D() function:\n")
print(D(f, 'x'))
输出
Using deriv() function:
expression({
.value <- x^2 + 5 * x + 1
.grad <- array(0, c(length(.value), 1L), list(NULL, c("x")))
.grad[, "x"] <- 2 * x + 5
attr(.value, "gradient") <- .grad
.value
})
Using D() function:
2 * x + 5
例2 :
# Little harder derivative
# Using deriv() Function
cat("Using deriv() function:\n")
print(deriv(quote(sinpi(x^2)), "x"))
# Using D() Function
cat("\nUsing D() function:\n")
print(D(quote(sinpi(x^2)), "x"))
输出
Using deriv() function:
expression({
.expr1 <- x^2
.value <- sinpi(.expr1)
.grad <- array(0, c(length(.value), 1L), list(NULL, c("x")))
.grad[, "x"] <- cospi(.expr1) * (pi * (2 * x))
attr(.value, "gradient") <- .grad
.value
})
Using D() function:
cospi(x^2) * (pi * (2 * x))