是否有一个R函数可以对需要循环的函数进行偏导数?

是否有一个R函数可以对需要循环的函数进行偏导数?,r,derivative,R,Derivative,我在R中有一个函数,它需要使用for循环,因为向量的后续值取决于向量的先前值。我需要取这个函数的偏导数 我尝试过使用Deriv::Deriv函数,它允许您提供一个函数,而不是像Deriv这样的表达式 我对我的功能进行了简化: fn=function(b1,omega){ R=12 S=10 curmean=rep(b1,R) for (each in 2:S){ curmean=c(curmean,omega*(curmean[((each-2)*R+1):((each-

我在R中有一个函数,它需要使用for循环,因为向量的后续值取决于向量的先前值。我需要取这个函数的偏导数

我尝试过使用
Deriv::Deriv
函数,它允许您提供一个函数,而不是像
Deriv
这样的表达式

我对我的功能进行了简化:

fn=function(b1,omega){
  R=12
  S=10
  curmean=rep(b1,R)
  for (each in 2:S){
    curmean=c(curmean,omega*(curmean[((each-2)*R+1):((each-1)*R)]))
  }
  curmean
}
fn(.04,.8)
Deriv(fn,x=c('b1'))(.004,.8)
当提供函数输入时,此代码应返回一个向量
b1=.04
omega=.8
(它是这样做的),以及在取
b1
的偏导数后由这些值产生的向量

Deriv_中的错误(a,x[ix],env,use.D,dsym,scache): 无法检索“for()”的正文。


有解决办法吗?也许可以使用符号语言来创建向量?

您需要它是偏导数的符号版本,还是数值偏导数适用于您的用例?@Dason数值偏导数适用于我的情况。