Rで数式を微分(多項式関数、三角関数、指数関数、対数関数)
Rで関数を微分することができます。数値的にではなく解析的にできます。 やり方はexpression関数で数式をセットしておいて、Dという関数を呼び出せばOK(プログラミング言語の「関数」と、数学の「関数」がごっちゃになる・・・) 高校で習うようなやつをいろいろ試してみました。 > # 多項式の関数の微分 > f <- expression( x^4 + 2*x^3 + 3*x^2 + 4*x + 5 ) > D(f, "x") 4 * x^3 + 2 * (3 * x^2) + 3 * (2 * x) + 4 できてる、みたいですね。数式を簡単にするところまではやってくれないので、ごちゃごちゃしているけど。 Dに「どの文字を変数とするか」("x"のところ)を指定するので、変数以外の文字を含んでいてもOKです。 > # 微分する変数以外の文字を含んでいてもOK > f <- expression( a*x^n ) > D(f, "x") a * (x^(n - 1) * n) ↓三角関数もいけます。 > # 三角関数の微分 > f1 <- expression( sin(x) ) > f2 <- expression( cos(x) ) > f3 <- expression( tan(x) ) > D(f1, "x") cos(x) > D(f2, "x") -sin(x) > D(f3, "x") 1/cos(x)^2 ↓指数関数も。 > # 指数関数の微分 > f1 <- expression( a^x ) > f2 <- expression( exp(0)^x ) > D(f1, "x") a^x * log(a) > D(f2, "x") exp(0)^x * log(exp(0)) ↑exp(0)ってのは自然対数の底のeのことなので(e^0のことね)、exp(0)^x を微分したら exp(0)^x となる、というのを期待したのですが、その部分(lo...