【问题标题】:Numerical derivatives of an arbitrarily defined function任意定义函数的数值导数
【发布时间】:2013-08-28 16:43:51
【问题描述】:

我想找到一个二元函数的数值导数。

  • 函数自己定义
  • 我需要关于每个参数的一阶导数并交叉二阶导数

是否有包或内置函数可以做到这一点?

【问题讨论】:

    标签: r derivative


    【解决方案1】:

    安装并加载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
    

    (我的示例是三元而不是二元,但它显然也适用于二元函数。)有关如何完成梯度,尤其是 Hessian 计算的更多信息,请参阅帮助页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多