16

関数の導関数を取得するために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に数値積分を行う方法はありますか?

4

2 に答える 2

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)

また、試すことができます

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

これは

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

数値積分に関しては、これを与えて何が利用できるかを確認してみてください

library(sos)
findFn('{numerical+integration}')
于 2010-07-28T10:19:32.450 に答える
2

私の知る限り、Rはの結果を単純化することはありませんD()。適切な数式処理システムが必要なように聞こえますが、Rは完全なCASではありません。MathematicaMapleが最もよく知られていますが、オープンソースの代替案もいくつかあります(このSOの投稿で説明されています)。

Rは数値積分を行うことができます-この種の質問については、最初にRヘルプページで検索する価値があります(つまりhelp.search('integrate'))。パッケージintegrate()で使用できます。statsパッケージにも含まarea()れていMASSますが、それははるかに簡単です(つまり、デモンストレーション目的で)。

于 2010-07-27T06:55:59.003 に答える