# On the n-th derivative of the inverse function

Given a function $$f(x)$$, its inverse $$g(x)$$ is defined as $$g(f(x)) \equiv x$$.

In light of this, the n-th derivative of $$g(x)$$ can be recursively calculated as follows:

list = {};

For[n = 1, n <= 6, n++,

eqn = D[g[f[x]], {x, n}] == D[x, {x, n}];
var = Derivative[n][g][f[x]];

If[n == 1,
list = Join[list, Solve[eqn, var][[1]]],
list = Join[list, (Solve[eqn, var] /. list)[[1]]]
]

]

list // Expand // TableForm


In MMA you can get this very simply by writing something like this:

Derivative[n][InverseFunction[f]][f[x]]


The question that arises is the following: is the latter formulation using a recursive process like the one shown above or is there a non-recursive formulation?

• Something like Derivative[3][InverseFunction[f]][f[x]]? – Szabolcs Dec 25 '18 at 11:07
• @Szabolcs: I was just modifying writing this. Now I have again asked the question, thank you! – TeM Dec 25 '18 at 11:16
• Sounds like a math question, not Mathematica ... (it's interesting though) – Szabolcs Dec 26 '18 at 9:07
• @Szabolcs: In fact you are right. Sometimes, however, some topics are borderline, it is difficult to understand how and where to formulate them, at least for me. – TeM Dec 26 '18 at 9:10

D[InverseFunction[f][x], {x, 6}]


Towards the question whether this is computed recursively: I guess so from analyzing the Trace produced by executing the code:

Table[
Length@Trace[
D[InverseFunction[f][x], {x, k}]
],
{k, 1, 12}]


{6, 7, 7, 10, 13, 18, 25, 36, 51, 73, 103, 145}

• Ok, get it, thank you! – TeM Dec 25 '18 at 18:51

In fact, there is a closed-form expression for the derivatives of an inverse function, if one is willing to use the (partial) Bell polynomials (implemented in Mathematica as BellY[]). This is related to the Lagrangian inversion formula (and see also the discussion in Charalambides).

inverseD[ff_, x_] := inverseD[ff, {x, 1}]

inverseD[ff_, {x_, k_Integer?NonNegative}] := With[{f = Function[x, ff]},

If[k == 0, Return[InverseFunction[f][x]]];
If[k == 1, Return[1/f'[InverseFunction[f][x]]]];

With[{ifun = InverseFunction[f][x]},
BellY[Table[{(k + j - 2)!, -Derivative[j][f][ifun]/f'[ifun]/j},
{j, 2, k}]]/((k - 1)! f'[ifun]^k)]]


For example:

(inverseD[g[t], {t, 4}] == D[InverseFunction[g][t], {t, 4}] /. Function[t, g[t]] -> g) // Simplify

• (I'm still computer-less, but I had this as a draft blog post, so I thought I'd post it.) – J. M. will be back soon Dec 31 '18 at 10:22
• It is always amazing with what you come up. Good to hear from you by the way! – Henrik Schumacher Dec 31 '18 at 10:56