# Solve implicit system of equations

Hello everybody I try to solve this system of functions and try to plot it:

x == 0.5(1.+Tanh[0.5*(x*y^2-eps1)/t]
y == Tanh[(x^2*y+eps2)/t]


with eps1 = 0. and eps2 = 1, for instance. The problem is how I can not only solve it but plot for instance x vs. t and y vs. t . Is it possible to do it in Mathematica?

Can I use first Solve[...,....,{x,y}] and explicit, for example, x as functions of t and y and then plot it?

I have the plot of the sol_x vs. t attached

The numbers correspond to different values of eps2 that, in my example is equal to 1.

Discontinuities for particular parameters

As mention by MarcoB the code to solve this algebraic system of equation can be written as follow:

s1 = Table[{t, x} /.
FindRoot[{x == 1/2 (1 + Tanh[1/2 (x y^2 - eps)/t]),
y == Tanh[(x^2 y + h)/t]}, {x, 1.}, {y, 1.}], {t, .001, 1.5,
1/100}];

ListLinePlot[s1, PlotRange -> {Automatic, {0., 1.}},
PlotRangePadding -> Scaled[.05], Frame -> True]


Where h, eps are two constant parameters. Now when I take particular parameters for h, eps (for instance: h = 0. and eps = 0. ) I have discontinuity while for other parameters I obtain smooth function. So this near the discontinuity is because FindRoot can't be able to converge? Or because there is some problem in accuracy? I try with AccuracyGoal and number of iterations but nothing change. Is it possible, somehow to fix this problem ?

Many thanks

• It is about what language? What is **? Commented Apr 18, 2016 at 15:02
• Start by expressing your equations in proper Mathematica syntax (e.g. tanh() is really TanH[], ** is probably ^ ), then look into ParametricPlot. Commented Apr 18, 2016 at 15:03
• Also note that equations use ==, not =. Finally, how is C in your plot above calculated from the equations you show? Commented Apr 18, 2016 at 15:13

Solve seems unable to solve your system symbolically. One can solve it numerically for various values of $t$, $\epsilon_1$ and $\epsilon_2$.

Setting eps1 = 0 as you indicated, we can use the following:

eps1 = 0;

Table[
{t, x} /. FindRoot[
{
x == 1/2 (1 + Tanh[1/2 (x y^2 - eps1)/t]),
y == Tanh[(x^2 y + eps2)/t]
},
{x, 1},
{y, 1}
],
{eps2, 1, 6, 1},
{t, 1*^-9, 15/10, 1/100}
];

ListLinePlot[%,
PlotRange -> {Automatic, {0.5, 1}},
PlotRangePadding -> Scaled[.05], Frame -> True,
Epilog -> Text[Style["eps1 = " <> ToString[N@eps1], 18], Scaled[{0.8, 0.8}]],
PlotLegends -> (("eps2 = " <> ToString[#]) & /@ Range[6])
]


However, this does not reproduce your graph very well, even for different values of eps1. You should provide a link to the source of the plot you showed and some context for your system of equations.

This may help, your problematic jump occurs because you have multiple solutions:

With[{t = 1/2, h = 0, eps = 0},
ContourPlot[{
x == 1/2 (1 + Tanh[(x y^2 + eps)/t]),
y == Tanh[(x^2 y + h)/t]}, {x, 0, 2}, {y, -1, 1}]]