2013-08-28 14 views

Odpowiedz

11

Zainstaluj i załaduj pakiet 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 

(Mój przykład jest trivariate zamiast dwuwymiarowych, ale będzie oczywiście działać na dwuwymiarowym funkcji, jak również.) Patrz strony pomocy, aby uzyskać więcej informacji na temat gradient a zwłaszcza Hessian obliczenia są wykonywane.

Powiązane problemy