Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中符号导数的等式_R_Expression_Symbolic Math_Derivative - Fatal编程技术网

R中符号导数的等式

R中符号导数的等式,r,expression,symbolic-math,derivative,R,Expression,Symbolic Math,Derivative,我想用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) f问题中的问题不仅仅是提取表达式,还包括表达

我想用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) 

f问题中的问题不仅仅是提取表达式,还包括表达式需要简化的事实

1)如果“IT问题”意味着您在安装Ryacas时遇到问题,请参阅有关疑难解答提示的,然后尝试以下方法:

library(Ryacas)
x <- Sym("x")
a <- Sym("a")
identical(Eval(Simplify(deriv(a*log(x^2), x))), 2 * a / x) # TRUE
库(Ryacas)

谢谢!“IT问题”是后者:我没有安装YACAS的管理员权限(但我可以单独安装R软件包——据我所知,如果我没有YACAS,这对我没有帮助)你在使用什么操作系统?Windows 7。我以前在安装Yacas时遇到过麻烦,但现在已经成功了(按照Ryacas网站上的建议)。在这种情况下,我也添加了Ryacas解决方案。对于我感兴趣的衍生产品,我仍然得到了错误的答案,所以看起来2是解决我问题的更好的解决方案。非常感谢你!
library(Ryacas)
x <- Sym("x")
a <- Sym("a")
identical(Eval(Simplify(deriv(a*log(x^2), x))), 2 * a / x) # TRUE
df.dx.byHand <- function(x) 2*a/x

df.dx <- function(x) {}
body(df.dx) <- D(f,'x')

a <- 3
all.equal(df.dx.byHand(1:100), df.dx(1:100)) # TRUE