2017-11-03 70 views
2

x = 2のとき、下の関数から微分値を取得したいと思います。関数の形式を保持し、追加パッケージなしで微分値を得る方法はありますか?Rで微分値を得るにはどうすればよいですか?

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

たとえば、私は以下を試しましたが、動作しませんでした。

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

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

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

近似だろうあなたは 'のx^3'(_i.e._' 3倍の導関数を表現する方法を求めています^ 2 ')、それを 'x = 2'で評価しますか? – neilfws

+1

数値デリバティブをサポートしていると思われる[Deriv package](https://cran.r-project.org/web/packages/Deriv/Deriv.pdf)を使用して調べることができます。 –

答えて

5

あなたはderivを使用することができますが、しかし、1つの警告はその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

+3

... 'function.arg = TRUE' socanを使い、 'derivative(2)'関数を使用してください。 – user20650

1

これは

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 
+0

"length.out = max(2、n)"とは何ですか? – user8878064

関連する問題