Определение функции с ее обратной внутри в Mathematica

Могу ли я использовать инверсию той же функции при определении самой функции? Например

b[x_]:=1+Integrate[InverseFunction[b][a],{a,0,x}]
b[5]

Набрав это, я получаю сообщение об ошибке:

$RecursionLimit::reclim: Recursion depth of 256 exceeded.

Более простой пример:

b[x_] := 1 + InverseFunction[b][x]
b[5]

также дает мне ту же ошибку.

Я так понимаю, что это связано с тем, что у функции в определении есть своя обратная, которую решить непросто (а может и невозможно?)

Не могли бы вы дать мне несколько советов, что делать в случае, если я хочу решить проблему этого типа (моя реальная проблема сложнее, но я хотел знать на более простом примере).

Есть ли другие способы получить решение для этого типа проблемы?


person olga    schedule 16.06.2014    source источник


Ответы (1)


Таким образом, вы не можете ссылаться на инверсию во время определения функции. Можно легко построить случаи, когда такое определение было бы неоднозначным. Что вы можете сделать, так это проанализировать свою функцию, чтобы получить эквивалентное явное описание. Во втором примере функция

b[x_] := 1/2 + x

удовлетворяло бы условию. Я обнаружил это, визуализировав функцию на графике, аргумент на оси x и результат на y. Тогда обратное соответствует отражению в строке x=y. Итак, если какая-то точка (x,y) принадлежит вашей функции, то и (y,x+1) тоже. Сделайте это несколько раз, и вы получите хорошее представление о том, как может выглядеть функция, по крайней мере, если вы предполагаете, что она непрерывна.

В первом примере с интегралом все будет сложнее, но если вам нужна помощь, лучше спросите на Math Stack Exchange, потому что это не о том, как использовать Mathematica.

person MvG    schedule 16.06.2014
comment
Можете ли вы написать код для решения функции b[x_] или для поиска решения определенного числа, например b[5]? - person olga; 17.06.2014