繁体   English   中英

如何将(一阶)导数作为函数写入R?

[英]How to write a (first-order) derivative as a function in R?

我需要pt *(p ^ g)*(1-p)^ d)的导数作为p的函数。 t,d和g都是定义的。 我在努力:

firstder<-D(expression(p-t*(p^g)*(1-p)^d), "p")
firstderivative<-function(p){
firstder
}

然而,打电话

firstderivative(p=0.1)

我只给出了一阶导数的表达。 提前致谢!

firstder是类"call"的对象。

class(firstder)
#[1] "call"

你忘记评估电话了。

firstder <- D(expression(p-t*(p^g)*(1-p)^d), "p")

firstderivative <- function(p){
    eval(firstder)
}

g <- 1
d <- 1
t <- 1
firstderivative(p=0.1)
#[1] 0.2

使用mosaicCore包很容易。 鉴于您有F(x)=x^2并且您希望基于x计算导数,所以您有:

library(mosaicCore)


dx2x <- deriv(~ x^2, "x") 
x <- -1:2
eval(dx2x)

在你的情况下,它将是:

library(mosaicCore)

dx <- deriv(~expression(p-t*(p^g)*(1-p)^d), "p")

x <- -1:2
eval(dx)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM