I am trying to solve two non-linear equations self-consistently in a Gummel loop. Sometimes (every once in a while), I get to a situation when the loop repeats itself with wrong solutions and a certain error persists. As a simple example, consider the following two equations:
\begin{align} &y = -x + 1 \\ &y = \sqrt{x} \end{align} and suppose the loop reaches to $x=0$ for the input of first equation, which leads to $y=1$ for the input of the second equation. This results in $x=1$ for the input of the first equation, leading to $y=0$, and the situation repeats itself (and of course, does not converge to a correct solution).
I was wondering if there is a good and comprehensive reference on this particular problem and on the properties of equations which lead to such behaviour. Also, what is the best way to avoid such difficulties in general?
I had exactly this problem with a coupled system resulting from discretized diffusion and electrostatics equations. I did not pursue the Gummel iteration approach further, but have wondered whether under-relaxation might solve this problem.
I would try forming a linear combination of the old and new solution in every step of the iteration. Start with something like $x_{n+1} = 0.01 x + 0.99 x_{n}$ and see whether that converges. If so, try to find the maximum value for $\alpha$ in $x_{n+1} = \alpha x + (1-\alpha) x_{n}$ for which the scheme still converges.