Я пытаюсь получить функцию в R с помощью пакета Deriv. Функция представляет собой взвешенное ядро Гаусса, поэтому я реализовал следующее решение:
library(Deriv)
library(psych)
x <- matrix(0:19, nrow = 4, ncol = 5)
w <- c(1,0.5,1,0.1,0.5)
eudis = function(x) {
xp2 <- as.matrix(apply(x^2, 1, sum))
xp2 %+% t(xp2) - 2*x%*%t(x)
}
wf <- function(w, x, gamma=1) {
exp(-gamma*as.matrix(eudis(t(t(x) * w))))
}
Deriv(wf(w,x=x), "w")
Но это возвращает ошибку:
Ошибка в eval (expr): dim (X) должен иметь положительную длину
У меня сложилось впечатление, что Deriv может вычислять только основные функции. Как я могу автоматически вычислить производную функции ядра?