簡體   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