2013-08-28 4 views
8

Я хотел бы найти числовые производные от двумерной функции.Численные производные произвольно определенной функции

  • Функция определена сама
  • мне нужна первые производные по каждому аргументу и крест второй производной

Есть ли пакет или встроенная функция, чтобы сделать это?

ответ

11

Установите и загрузите пакет 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 

(Мой пример trivariate вместо двумерного, но это, очевидно, будет работать для двухмерного функции, а также.) См страницы справки для получения дополнительной информации о том, как градиент и особенно гессенские расчеты производятся.

Смежные вопросы