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ではありません。 Mathematica と Maple が最もよく知られていますが、オープンソースの選択肢もいくつかあります( これで説明されているようにSO投稿 )。
Rは数値積分を行うことができます-この種の質問については、最初にRヘルプページで検索する価値があります(つまり、help.search('integrate')
)。 stats
パッケージのintegrate()
を使用できます。 MASS
パッケージにもarea()
がありますが、これははるかに単純です(つまり、デモンストレーションの目的で)。