繁体   English   中英

函数的导数

[英]derivative of a function

我正在使用D来获得函数的导数。 但是,R在返回导数时不会简化表达式。 我需要弄清楚函数是否具有可以一般表达的导数。 R中是否有某种方法可以简化表达式?

> D(expression(sqrt(1 - x^2)), 'x')
-(0.5 * (2 * x * (1 - x^2)^-0.5))
> D(D(expression(sqrt(1 - x^2)), 'x'), 'x')
-(0.5 * (2 * (1 - x^2)^-0.5 - 2 * x * (-0.5 * (2 * x * (1 - x^2)^-1.5))))

其次,R有没有办法进行数值积分?

library(Ryacas)
x <- Sym("x")
Simplify(deriv(sqrt(1 - x^2),x,2))  # return the result simplified

expression((x^2 - 1 - x^2)/root(1 - x^2, 2)^3)

你也可以试试

PrettyForm(Simplify(deriv(sqrt(1 - x^2),x,2)))

这使

   2        2  
  x  - 1 - x   
---------------
              3
    /      2 \ 
Sqrt\ 1 - x  / 

至于数值积分,试着看看有什么可用

library(sos)
findFn('{numerical+integration}')

据我所知,R不会简化D()的结果。 听起来好像你想要一个合适的计算机代数系统,R绝对不是一个完整的CAS。 MathematicaMaple是最知名的,但也有一些开源替代品( 正如SO帖子所讨论的那样 )。

R可以进行数值积分 - 对于这类问题,首先需要在R帮助页面中搜索(即help.search('integrate') )。 您可以在stats包中使用integrate() MASS包中也有area() ,但这更简单(即用于演示目的)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM