10

二変量関数の数値導関数を見つけたいと思います。

  • 関数は自分で定義します
  • 各引数に関して一次導関数が必要で、二次導関数をクロスします

これを行うためのパッケージまたは組み込み関数はありますか?

4

1 に答える 1

15

numDerivパッケージをインストールしてロードします。

library(numDeriv)
f <- function(x) {
    a <- x[1]; b <- x[2]; c <- x[3]
    sin(a^2*(abs(cos(b))^c))
}
grad(f,x=1:3)
## [1]  0.14376097  0.47118519 -0.06301885
hessian(f,x=1:3)
##            [,1]       [,2]        [,3]
## [1,]  0.1422651  0.9374675 -0.12538196
## [2,]  0.9374675  1.8274058 -0.25388515
## [3,] -0.1253820 -0.2538852  0.05496226

(私の例は 2 変量ではなく 3 変量ですが、明らかに 2 変量関数でも機能します。) 勾配、特にヘッセ行列の計算方法の詳細については、ヘルプ ページを参照してください。

于 2013-08-28T17:40:29.070 に答える