首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数的导数

函数的导数
EN

Stack Overflow用户
提问于 2010-07-27 12:10:27
回答 2查看 40.9K关注 0票数 16

我使用D来得到一个函数的导数。但是,在返回导数时,R不会简化表达式。我需要找出一个函数是否有一个导数,可以用一般的表达式来表示。在R中有什么方法可以简化表达式吗?

代码语言:javascript
复制
> 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中有没有一种做数值积分的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-28 18:19:32

代码语言:javascript
复制
library(Ryacas)
x <- Sym("x")
Simplify(deriv(sqrt(1 - x^2),x,2))  # return the result simplified

给出

代码语言:javascript
复制
expression((x^2 - 1 - x^2)/root(1 - x^2, 2)^3)

您也可以尝试

代码语言:javascript
复制
PrettyForm(Simplify(deriv(sqrt(1 - x^2),x,2)))

这给了我们

代码语言:javascript
复制
   2        2  
  x  - 1 - x   
---------------
              3
    /      2 \ 
Sqrt\ 1 - x  / 

至于数值积分,试着给出这个,看看是什么

代码语言:javascript
复制
library(sos)
findFn('{numerical+integration}')
票数 14
EN

Stack Overflow用户

发布于 2010-07-27 14:55:59

据我所知,R不会简化D()的结果。听起来你想要一个合适的计算机代数系统,而R绝对不是一个完整的CAS。MathematicaMaple是最广为人知的,但也有许多开源替代方案(as discussed on this SO post)。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3340690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档