differential equations – DSolve can’t solve DSolve[f'[x] == InverseFunction[f][x], f[x], x]


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);
Off(InverseFunction::ifun);
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))) &
*)

Check:

Simplify(eqn /. f -> f0)
On(InverseFunction::ifun);
(*  True  *)