f[x_] := y /. FindRoot[y == Tanh[(2 y + x)/2.5], {y, x}]
Plot[2.5 Log[2 Cosh[(2 f[x] + x)/2.5]], {x, -1.5, 1.5}]

1. Analyze
g[x_, d_] := y /. FindRoot[y == Tanh[(2 y + x)/d], {y, x}]
Manipulate[
Plot[g[x, d], {x, -1.5, 1.5},
PlotRange -> {-1, 1}],
{{d, 2.5}, 1, 3}]
2. Min/Max values
This example gives an idea how to redefine g
:
Manipulate[
Plot[{y, Tanh[(2 y + x)/d]}, {y, -2, 2}],
{{d, 1.5}, 0, 3},
{{x, 1}, -5, 5}]
g[x_, d_: 1.5] :=
With[{x0 = If[x < 0, -1, 1]},
y /. FindRoot[y == Tanh[(2 y + x)/d], {y, x0}]]
ListPlot[Table[{x, g[x]}, {x, -2, 2, .05}],
Joined -> True]

Instead of ContourPlot
you can also solve first equation for x(y)
as @Alexei pointed out.
With[{d = 1.5},
Plot[d (ArcTanh[y] - 2 y), {y, -2, 2},
PlotRange -> All]]

3. Functions z(x,y) and y'(x)
Note that you can simplify your z
with how y
is defined.
ListPlot[Table[{x, -2.5 Log[2 Cosh[ArcTanh[g[x, 2]]]]},
{x, -2, 2, .05}], Joined -> True]

Regarding derivative, calculate that again for what you've commented is not true. Check:
Solve[y'[x] == D[Tanh[(2 y[x] + x)/d], x], y'[x]]
So you can define it like this:
dy[x_, d_: 1.5] :=
With[{y = g[x, d]},
Divide[
Sech[(2 y + x)/d]^2,
d - 2 Sech[(2 y + x)/d]^2]]
ListPlot[Table[{x, dy[x]}, {x, -2, 2, .05}]]

Because of the pole I can't force Joined -> True
. I could do that if I offset x's a little in the last Table
(e.g. -2 - .1
). I can also do this:
Module[{dx = .05, left},
left = Table[{x, dy[x, 2]}, {x, -2, -dx, dx}];
Graphics[{
Line[left],
Line[left /. {x_, y_} :> {-x, y}]},
Axes -> True]]
