2013-08-28 25 views

Trả lời

11

Cài đặt và tải gói 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 

(ví dụ của tôi là trivariate chứ không phải là hai biến, nhưng nó rõ ràng sẽ làm việc cho một hàm hai biến là tốt.) Xem các trang trợ giúp để biết thêm thông tin về cách tính toán gradient và đặc biệt là Hessian được thực hiện.