On the n-th derivative of the inverse function












9












$begingroup$


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


enter image description here



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?










share|improve this question











$endgroup$












  • $begingroup$
    Something like Derivative[3][InverseFunction[f]][f[x]]?
    $endgroup$
    – Szabolcs
    Dec 25 '18 at 11:07










  • $begingroup$
    @Szabolcs: I was just modifying writing this. Now I have again asked the question, thank you!
    $endgroup$
    – TeM
    Dec 25 '18 at 11:16










  • $begingroup$
    Sounds like a math question, not Mathematica ... (it's interesting though)
    $endgroup$
    – Szabolcs
    Dec 26 '18 at 9:07










  • $begingroup$
    @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.
    $endgroup$
    – TeM
    Dec 26 '18 at 9:10
















9












$begingroup$


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


enter image description here



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?










share|improve this question











$endgroup$












  • $begingroup$
    Something like Derivative[3][InverseFunction[f]][f[x]]?
    $endgroup$
    – Szabolcs
    Dec 25 '18 at 11:07










  • $begingroup$
    @Szabolcs: I was just modifying writing this. Now I have again asked the question, thank you!
    $endgroup$
    – TeM
    Dec 25 '18 at 11:16










  • $begingroup$
    Sounds like a math question, not Mathematica ... (it's interesting though)
    $endgroup$
    – Szabolcs
    Dec 26 '18 at 9:07










  • $begingroup$
    @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.
    $endgroup$
    – TeM
    Dec 26 '18 at 9:10














9












9








9





$begingroup$


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


enter image description here



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?










share|improve this question











$endgroup$




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


enter image description here



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?







calculus-and-analysis






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Dec 26 '18 at 9:00







TeM

















asked Dec 25 '18 at 11:02









TeMTeM

2,027621




2,027621












  • $begingroup$
    Something like Derivative[3][InverseFunction[f]][f[x]]?
    $endgroup$
    – Szabolcs
    Dec 25 '18 at 11:07










  • $begingroup$
    @Szabolcs: I was just modifying writing this. Now I have again asked the question, thank you!
    $endgroup$
    – TeM
    Dec 25 '18 at 11:16










  • $begingroup$
    Sounds like a math question, not Mathematica ... (it's interesting though)
    $endgroup$
    – Szabolcs
    Dec 26 '18 at 9:07










  • $begingroup$
    @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.
    $endgroup$
    – TeM
    Dec 26 '18 at 9:10


















  • $begingroup$
    Something like Derivative[3][InverseFunction[f]][f[x]]?
    $endgroup$
    – Szabolcs
    Dec 25 '18 at 11:07










  • $begingroup$
    @Szabolcs: I was just modifying writing this. Now I have again asked the question, thank you!
    $endgroup$
    – TeM
    Dec 25 '18 at 11:16










  • $begingroup$
    Sounds like a math question, not Mathematica ... (it's interesting though)
    $endgroup$
    – Szabolcs
    Dec 26 '18 at 9:07










  • $begingroup$
    @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.
    $endgroup$
    – TeM
    Dec 26 '18 at 9:10
















$begingroup$
Something like Derivative[3][InverseFunction[f]][f[x]]?
$endgroup$
– Szabolcs
Dec 25 '18 at 11:07




$begingroup$
Something like Derivative[3][InverseFunction[f]][f[x]]?
$endgroup$
– Szabolcs
Dec 25 '18 at 11:07












$begingroup$
@Szabolcs: I was just modifying writing this. Now I have again asked the question, thank you!
$endgroup$
– TeM
Dec 25 '18 at 11:16




$begingroup$
@Szabolcs: I was just modifying writing this. Now I have again asked the question, thank you!
$endgroup$
– TeM
Dec 25 '18 at 11:16












$begingroup$
Sounds like a math question, not Mathematica ... (it's interesting though)
$endgroup$
– Szabolcs
Dec 26 '18 at 9:07




$begingroup$
Sounds like a math question, not Mathematica ... (it's interesting though)
$endgroup$
– Szabolcs
Dec 26 '18 at 9:07












$begingroup$
@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.
$endgroup$
– TeM
Dec 26 '18 at 9:10




$begingroup$
@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.
$endgroup$
– TeM
Dec 26 '18 at 9:10










2 Answers
2






active

oldest

votes


















9












$begingroup$

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}







share|improve this answer











$endgroup$













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



















5












$begingroup$

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





share|improve this answer









$endgroup$













  • $begingroup$
    (I'm still computer-less, but I had this as a draft blog post, so I thought I'd post it.)
    $endgroup$
    – J. M. is computer-less
    Dec 31 '18 at 10:22






  • 1




    $begingroup$
    It is always amazing with what you come up. Good to hear from you by the way!
    $endgroup$
    – Henrik Schumacher
    Dec 31 '18 at 10:56











Your Answer





StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "387"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f188399%2fon-the-n-th-derivative-of-the-inverse-function%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes









9












$begingroup$

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}







share|improve this answer











$endgroup$













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
















9












$begingroup$

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}







share|improve this answer











$endgroup$













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














9












9








9





$begingroup$

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}







share|improve this answer











$endgroup$



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}








share|improve this answer














share|improve this answer



share|improve this answer








edited Dec 25 '18 at 15:56

























answered Dec 25 '18 at 11:06









Henrik SchumacherHenrik Schumacher

55.8k576154




55.8k576154












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


















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
















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




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











5












$begingroup$

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





share|improve this answer









$endgroup$













  • $begingroup$
    (I'm still computer-less, but I had this as a draft blog post, so I thought I'd post it.)
    $endgroup$
    – J. M. is computer-less
    Dec 31 '18 at 10:22






  • 1




    $begingroup$
    It is always amazing with what you come up. Good to hear from you by the way!
    $endgroup$
    – Henrik Schumacher
    Dec 31 '18 at 10:56
















5












$begingroup$

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





share|improve this answer









$endgroup$













  • $begingroup$
    (I'm still computer-less, but I had this as a draft blog post, so I thought I'd post it.)
    $endgroup$
    – J. M. is computer-less
    Dec 31 '18 at 10:22






  • 1




    $begingroup$
    It is always amazing with what you come up. Good to hear from you by the way!
    $endgroup$
    – Henrik Schumacher
    Dec 31 '18 at 10:56














5












5








5





$begingroup$

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





share|improve this answer









$endgroup$



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






share|improve this answer












share|improve this answer



share|improve this answer










answered Dec 31 '18 at 10:22









J. M. is computer-lessJ. M. is computer-less

97.5k10303463




97.5k10303463












  • $begingroup$
    (I'm still computer-less, but I had this as a draft blog post, so I thought I'd post it.)
    $endgroup$
    – J. M. is computer-less
    Dec 31 '18 at 10:22






  • 1




    $begingroup$
    It is always amazing with what you come up. Good to hear from you by the way!
    $endgroup$
    – Henrik Schumacher
    Dec 31 '18 at 10:56


















  • $begingroup$
    (I'm still computer-less, but I had this as a draft blog post, so I thought I'd post it.)
    $endgroup$
    – J. M. is computer-less
    Dec 31 '18 at 10:22






  • 1




    $begingroup$
    It is always amazing with what you come up. Good to hear from you by the way!
    $endgroup$
    – Henrik Schumacher
    Dec 31 '18 at 10:56
















$begingroup$
(I'm still computer-less, but I had this as a draft blog post, so I thought I'd post it.)
$endgroup$
– J. M. is computer-less
Dec 31 '18 at 10:22




$begingroup$
(I'm still computer-less, but I had this as a draft blog post, so I thought I'd post it.)
$endgroup$
– J. M. is computer-less
Dec 31 '18 at 10:22




1




1




$begingroup$
It is always amazing with what you come up. Good to hear from you by the way!
$endgroup$
– Henrik Schumacher
Dec 31 '18 at 10:56




$begingroup$
It is always amazing with what you come up. Good to hear from you by the way!
$endgroup$
– Henrik Schumacher
Dec 31 '18 at 10:56


















draft saved

draft discarded




















































Thanks for contributing an answer to Mathematica Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


Use MathJax to format equations. MathJax reference.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f188399%2fon-the-n-th-derivative-of-the-inverse-function%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

To store a contact into the json file from server.js file using a class in NodeJS

Redirect URL with Chrome Remote Debugging Android Devices

Dieringhausen