25

R特定の単一変数関数の逆関数を解く方法はありますか? 動機はR、値のベクトルを逆関数の入力として使用して、逆関数の値を吐き出すことができるようにすることです。

たとえば、関数y(x) = x^2があり、逆関数は ですy = sqrt(x)R逆関数を解く方法はありますか?

を調べましたuniroot()が、関数のゼロを解いていません。

どんな提案も役に立ちます。

ありがとう!

4

2 に答える 2

36

どのような逆を見つけますか? シンボリックな逆関数 (たとえば、sqrt(x) とまったく同じ関数 y) を探している場合は、シンボリック システムを使用する必要があります。逆数を計算できる可能性が高いコンピューター代数システム、Yacas に接続する R ライブラリのryacasを見てください。

ここで、ポイントごとの逆数を計算するだけでよい場合は、次のように uniroot に関して関数を定義できます。

> inverse = function (f, lower = -100, upper = 100) {
   function (y) uniroot((function (x) f(x) - y), lower = lower, upper = upper)[1]
}

> square_inverse = inverse(function (x) x^2, 0.1, 100)

> square_inverse(4)
[1] 1.999976

与えられたyとに対して、これは逆数とも呼ばれるf(x)を計算xします。f(x) = y

于 2012-04-10T00:30:18.900 に答える