Я хотел бы использовать R для проверки сложных вычислений производных. Вот моя лучшая попытка на простой функции:
f <- expression(a*log(x^2))
df.dx <- deriv(f, 'x')
(df.dx)
df.dx.byHand <- expression(2*a/x) # The derivative of f calculated by hand
(df.dx.byHand)
all.equal(df.dx, df.dx.byHand)
Результат вышеизложенного
> (df.dx)
expression({
.expr1 <- x^2
.value <- a * log(.expr1)
.grad <- array(0, c(length(.value), 1L), list(NULL, c("x")))
.grad[, "x"] <- a * (2 * x/.expr1)
attr(.value, "gradient") <- .grad
.value
> (df.dx.byHand)
expression(2 * a/x)
[1] "Component 1: target, current do not match when deparsed"
я уже проверил
Явная формула и символьные производные в R,
http://stat.ethz.ch/R-manual/R-patched/library/stats/html/deriv.html
Символические производные и упрощение в R
а также
http://stat.ethz.ch/R-manual/R-patched/library/base/html/expression.html
поскольку основная проблема заключается в том, что я не знаю, как извлечь из 'df.dx' часть выражения 'grad [, 'x']'.
Из-за проблем с ИТ ни Sage, ни YACAS мне недоступны.
Большое спасибо за предложения!