We can define an InverseFunction even when the inverse can't be expressed in closed form.
f[x_]:=1.1*x+Sin[x];
fInverse=InverseFunction[1.1*#+Sin[#]&];
Plot[{f[x],fInverse[x],x},{x,0,14},
PlotStyle->{Blue,Brown,{Gray,Dashed}},
PlotRange->{{0,14},{0,14}},AspectRatio->1
]
We can also compute the first derivative of fInverse.
fInverse'[3.46]
(* 9.91112 *)
However, trying to compute the second derivative doesn't work.
fInverse''[3.46]
(* -4.15922 (9.91112+(0& (InverseFunction')[1.1 #1+Sin[#1]&])[3.46]) *)
Is it possible to compute higher derivatives using an approach similar to computing the first derivative? I am using Version 12.0.0. Are any later versions able to compute higher derivatives of such an InverseFunction?
fInverse''[3.46]
gives-41.2225
. $\endgroup$InverseFunction
gives an example ofInverseFunction[(a # + b)/(c # + d) &]
which works, your example ofInverseFunction[1.1*#+Sin[#]&]
does not. This behavior should be documented. The answer by Bob Hanlon shows that usingInverseFunction[f]
works. I don't understand why the difference. $\endgroup$Experimental`OptimizeExpression[InverseFunction[g]''''[x]] /. g -> f /. x -> 3.46 // First
(Assumesg
andx
are undefined.) $\endgroup$