2010-07-27 3 views
15

저는 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은 수치 적분을 수행하는 방법입니까?

답변

14
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) 

을 이해하지 않았다 수도 있습니다

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

으로 제공

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

수치 적 통합을위한 노력 givi 사용 가능한 내용을 보려면 여기를 클릭하십시오.

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

정말 도움이됩니다. 검색 기능이 훨씬 쉬워졌습니다 !! – user236215

2

내가 아는 한 R은 D()의 결과를 단순화하지 않을 것입니다. 마치 적절한 컴퓨터 대수학 시스템을 원하는 것처럼 들리지만, R은 확실히 완전한 CAS가 아닙니다. MathematicaMaple이 가장 잘 알려져 있지만 많은 오픈 소스 대안 (as discussed on this SO post)도 있습니다.

R은 수치 적 통합을 할 수 있습니다. 이런 종류의 질문에 대해서는 먼저 R 도움말 페이지 (즉, help.search('integrate'))에서 검색 할 가치가 있습니다. stats 패키지에 integrate()을 사용할 수 있습니다. MASS 패키지에도 area()이 있지만 훨씬 간단합니다 (데모 용).

+1

R 기호 기능은 Ryacas 또는 rSymPy로 확장 할 수 있습니다. – mbq

0

Octave을 확인하고 싶을 것입니다. 무료이며 afaik 수학을 좋아하는 사람들입니다.

EDIT : @mbq, 나는 그렇게 확신하지 않는다. .. 그것은 내가 생각했던 것이다. 기본적으로 무료이며, 그가 원하는 것을 할 수 있습니다. 내 추측이 그다지 나쁘지 않은 일부 evidence이 있습니다. 물론 제가 일 :

+1

옥타브에는 상징이 있습니까? 나는 그것이 "GNU MATLAB"일 뿐이지 만. – mbq

+0

또한 GNU matlab이라고 생각했습니다. 수학 확장 소프트웨어가 필요할지라도 수학 소프트웨어에서 다루기가 더 쉽다고 말하고 싶었습니다. –

+0

Maxima를 볼 수도 있습니다. http://maxima.sourceforge.net/ –