求解R中函数的逆

cra*_*ian 21 r inverse

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

例如,我有函数y(x) = x^2,反函数是y = sqrt(x).有没有办法R可以解决反函数?

我抬起头uniroot(),但我没有解决函数的零点问题.

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

谢谢!

Mik*_*iak 30

你发现了什么样的逆转?如果您正在寻找一个符号反转(例如,一个与sqrt(x)相同的函数y),您将不得不使用符号系统.查看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
Run Code Online (Sandbox Code Playgroud)

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