calculating the Gradient and the Hessian in R

前端 未结 2 1681
悲&欢浪女
悲&欢浪女 2021-02-10 18:34

As you know, the Gradient of a function is the following vector:

\"the

and the Hessian is the fo

相关标签:
2条回答
  • 2021-02-10 19:06

    The following code is an extension of the answer provided. It treats the case where you have the values of the function and not the actual function. Here the function has 1 parameter. The Grad function calculates in a single point. If you have 3 parameters then you need to provide them to x0 with c(x1,x2,x3).

    #i is an index, s_carvone$val contains the values of the function
    dummy <- function(i) 
    {
      return (s_carvone$val[i])
    }
    
    #function that calculates the gradient in a specific point i
    calc_grad <- function(i)
    {
      return (pracma::grad(dummy, x0=i, heps=1))
    }
    
    #calculates the derivative from point 2 to 61
    first_derivative = unlist(purrr::map(calc_grad, .x = c(2:61)));
    
    plot(first_derivative);
    
    0 讨论(0)
  • 2021-02-10 19:10

    You can use the pracma library, such as:

    library(pracma)
    
    dummy <- function(x) {
      z <- x[1]; y <- x[2]
      rez <- (z^2)*(y^3)
      rez
    }
    
    grad(dummy, c(1,2))
    [1] 16 12
    
    hessian(dummy, c(1,2))
         [,1] [,2]
    [1,]   16   24
    [2,]   24   12
    
    0 讨论(0)
提交回复
热议问题