You can start with the basic relation f[(f^-1)[x]] == x and take its derivative:
f[(f^-1)[x]] == x
f = -((Sqrt[#1] (-E^(2 C) + #1) +
E^(3 C) ArcSin[E^-C Sqrt[#1]]
Sqrt[1 - E^(-2 C) #1])/Sqrt[E^(2 C) - #1]) &;
basicRelation = (f[fInverse[t + C]] == t + C);
Solve[D[basicRelation, t], fInverse'[t + C]]
Thank you! By the way, I have another problem (not related to the above one) to ask you: I used the NDSolve to solve a set of ordinary differential equations in a very narrow interval of the independent variable(say t) and it failed. Actually I managed to compute the values of functions in the equations at each t with very high working precision, but the values of functions weren't calculated with such high working precision in the NDSolve solving. It seemed I was solving at a single point. When I made the interval large, it worked. How can I solve the problem? Need I write my own differential equation solving program instead of NDSolve?
Perhaps you can rescale the parameter t in the equation so that it ranges over a larger interval.
I think I tried, the interval got larger though it was still tiny compared with the enormous length from the origin to the target interval, which also appeared in the equations. Moreover, it sounds difficult to deal it with very high working precision. What book or website do you recommend me to read for rescaling tricks?
You can always rescale the independent variable, for example this way:
independentVariableChange = (a*t + b == x)
dependentVariableChange = (g[t] == f[x])
dependentVariableChange /. Solve[independentVariableChange, x][]
% /. Solve[independentVariableChange, t][]
f -> (Function[x, g[t]] /. Solve[independentVariableChange, t][])
originalDiffEq = f''[x] - f'[x] == x*f[x]
originalDiffEq /. changeOfVariables
% /. Solve[independentVariableChange, x][]