求解R中一个函数的逆(Solving for the inverse of a function i

2019-06-23 11:38发布

有没有办法为R解决一个给定的单变量函数的反函数? 的动机是为我后来告诉R使用值的向量作为反函数的输入,以便它可以吐出反函数值。

例如,我有函数y(x) = x^2 ,逆是y = sqrt(x) 。 有没有一种方法R可以解决的反函数?

我抬头uniroot()但我不求解函数的零点。

任何的意见都将会有帮助。

谢谢!

Answer 1:

你在寻找什么样的逆? 如果你正在寻找一个象征性的逆(例如,函数y是恒等于开方(X)),你将不得不使用的符号系统。 看看ryacas有关R库与一个计算机代数系统,可以计算可能逆,Yacas连接。

现在,如果你只需要计算逐点逆,可以在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

对于给定的yf(x)这将计算x ,使得f(x) = y ,也被称为逆。



文章来源: Solving for the inverse of a function in R
标签: r inverse