Rで微分(シンボリック計算)

ほとんどのプログラム言語ではシンボリックな計算はできません。

と言っても「シンボリックな計算って何?」と思う人のほうが多いかもしれませんが・・・。シンボリックな計算というのは「 \bf{x^2} \bf{x}微分せよ」みたいな計算を言います。

「え?そんなの簡単じゃないの?」と思う人も少なくないでしょうが、「人間には簡単なことでもコンピューター(プログラム言語)には簡単じゃないことがある」という一例ですね。

ただ、すべてのプログラム言語が不得意かと言うとそうでもなくて、矢野が知っている範囲内でもMathematica, Maxima, Maple, Matlab(Symbolic Mathというパッケージを追加)などはシンボリック計算ができます。

で、我らがRではどうかというと・・・基本的にはシンボリックな計算はできません。まあ、そもそも「統計データの解析用ソフト」な訳で、シンボリックな計算をするってのは「お門違い」と言えます。

が、なぜか「簡単な関数( {log}とか {\exp}など)ならシンボリックに微分ができる」という機能が付いています(微分だけができます)。

> D(expression(log(x)),"x")
1/x
> D(expression(1/x),"x")
-(1/x^2)
> D(expression(exp(a*x)),"x")
exp(a * x) * a
> D(expression(exp(-a*x)),"x")
-(exp(-a * x) * a)
> D(expression((x-1)^2), "x")
2 * (x - 1)

なぜ微分だけができるのか?謎はつきませんが、まあ、こんな機能もあるってことでw