Here is the code I tried.

DSolve[f'[x] == InverseFunction[f][x], f[x], x]

The pop-up message is DSolve::dvnoarg: The function f appears with no arguments.

But I don't think this is a valid reason. I have the argument x.

  • 1
    $\begingroup$ If f has an argument x, it would appear as f[x], not InverseFunction[f][x]. The argument to InverseFunction is f without an x. The argument to InverseFunction[f] is x, but x is not an argument to f. You could try the equivalent DSolve[f[f'[x]] == x, f[x], x] to get a different error, indicating (imo) that DSolve does solve this type of equation (which is not an ODE in the normal sense as defined by standard textbooks, nor a DDE, but a more general functional differential equation). $\endgroup$
    – Michael E2
    Commented Aug 24, 2020 at 3:13

1 Answer 1


Here's a way to get a solution, which I arrived at after trying a fixed-point iteration à la Picard iteration:

eqn = f'[x] == InverseFunction[f][x];
Block[{f = a #^k &, eqn0},
 eqn0 = PowerExpand@eqn;
 ksol = First@Solve[Exponent[#, x] & /@ eqn0 && k > 0, k];
 asol = First@Solve[eqn0 /. ksol /. x -> 1, a];
 f0 = f /. asol /. ksol
  E^(((1 + Sqrt[5]) (Log[2] - Log[1 + Sqrt[5]]))/(3 + Sqrt[5])) *
   #1^(1/2 (1 + Sqrt[5])) &


Simplify[eqn /. f -> f0]
(*  True  *)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.