Вопрос по r – Решение для обратной функции в R

20

Есть ли способ дляR решить для обратной заданной функции одной переменной? Мотивация для меня позже рассказатьR использовать вектор значений в качестве входных данных обратной функции, чтобы он мог выплевывать значения обратной функции.

Например, у меня есть функцияy(x) = x^2обратноеy = sqrt(x), Есть ли способR можно решить для обратной функции?

Я посмотрел вверхuniroot(), но я не решаю для нуля функции.

Любые предложения будут полезны.

Спасибо!

Ваш Ответ

1   ответ
29

(например, функцию y, которая тождественно равна sqrt (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

Для данногоy а такжеf(x), это будет вычислятьx такой, чтоf(x) = yтакже известный как обратный.

Error: User Rate Limit Exceededy <- f(seq(0,100,.001)Error: User Rate Limit ExceededecdfError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы