# How to ask Mathematica to express variables in terms of each other in an implicit function

How to ask Mathematica to give $$y$$ in terms of $$x$$ in this function? Is there a way to obtain a closed form expression for $$y$$ in terms of $$x$$?

$$x=\frac{\left(y^4-1\right) \left(\coth (2 y)-\frac{1}{\sinh (2 y)}\right)}{y^7-3 y^4}$$

($$x$$ and $$y$$ are greater than zero)

Solve and Reduce do not work in this case.

• You have a complicated transcendental equation, you should not expect to be able to find a symbolic inverse. The best you can do is to invert the equation numerically. Over what range are you hoping to work with? Nov 5, 2019 at 23:40

Clear["Global`*"]

f[y_] = (y^4 - 1) (Coth[2 y] - 1/Sinh[2 y])/(y^7 - 3 y^4);

Graphically, the inverse is

ParametricPlot[{f[y], y}, {y, -10, 10},
Frame -> True,
FrameLabel -> (Style[#, 14, Bold] & /@ {x, y}),
AspectRatio -> 1/GoldenRatio]

InverseFunction will provide one branch

g[x_] := InverseFunction[f][x]

Plot[g[x], {x, -0.1, 0.15},
Frame -> True,
FrameLabel -> (Style[#, 14, Bold] & /@ {x, y}),
PlotRange -> {-10, 10},
ImageSize -> 500,
Epilog -> Inset[
Plot[g[x], {x, -0.1, 0.15},
Frame -> True],
{0.08, -5}]]

Numerically finding the inverse

g2[x_?NumericQ] := y /. NSolve[x == f[y], y, Reals]

ListPlot[
Flatten[Table[{x, #} & /@ g2[x],
{x, -0.1, 0.15, 0.005}], 1],
Frame -> True,
FrameLabel -> (Style[#, 14, Bold] & /@ {x, y})]