20

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

Есть ли способ для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также известный как обратный.

RelatedQuestions