У меня есть функция в 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
.
Error in Deriv_(a, x[ix], env, use.D, dsym, scache) :
Could not retrieve body of 'for()'
Есть ли обходной путь для этого?Может быть, символический язык для создания вектора?