Мне нужно дифференцировать функцию, которая получается в результате умножения матриц и векторов, используя функцию (D) в R, но каждый раз, когда результат равен нулю.
вот мой код:
f1=function(tt){
u=cbind(cos(tt),sin(tt))
a=drop((u)%*%solve(var.cov)%*%t(u))
b=drop((u)%*%solve(var.cov)%*%(mu))
c=drop(-0.5*t(mu)%*%solve(var.cov)%*%mu)
d=drop(b/sqrt(a))
aa=(1/(2*pi*a*sqrt(det(var.cov))))*exp(c)*(1+((d*pnorm(d))/dnorm(d)))
return(aa)
}
D(expression(f1),"var.cov")
Мне нужно получить производную по матрице (var.cov).
Я не знаю причину этой ошибки.
Есть ли пакет в R, который предназначен для дифференциации ??????
спасибо