Respuesta parcial para $u_0>0$, luego
$$u_{n+1}-\frac{u_n}{2}=\frac{1}{2}(\arctan{u_n}-u_n)<0$$
debido a $f(x)=\arctan{x}-x<0$ positivos $x$, lo que
$$0<u_{n+1}<\frac{u_n}{2}<u_n \tag{1}$$
El uso de MVT, $\exists z\in(u_{n+1},u_n)$s.t.
$$u_{n+1}-u_n=\frac{1}{2}\left(\arctan{u_n}-\arctan{u_{n-1}}\right)=
\frac{1}{2}\frac{u_{n}-u_{n-1}}{z^2+1}$$
o (debido a $\color{red}{u_n-u_{n-1}<0}$)
$$\frac{1}{2}\cdot \frac{u_{n}-u_{n-1}}{u_{n+1}^2+1}<
u_{n+1}-u_n<
\frac{1}{2}\cdot \frac{u_{n}-u_{n-1}}{u_{n}^2+1}$$
o
$$\frac{u_{0}-u_{1}}{2^n}\prod\limits_{k=1}^n\frac{1}{u_{k+1}^2+1}<
u_{n+1}-u_n<
\frac{u_{0}-u_{1}}{2^n}\prod\limits_{k=1}^n\frac{1}{u_{k}^2+1}$$
Considerando $u_{n+1}-u_n \sim -\frac{l}{2^{n+1}}$luego
$$\frac{u_{0}-u_{1}}{2^n}\prod\limits_{k=1}^n\frac{1}{u_{k+1}^2+1}>
\frac{l}{2^{n+1}}>
\frac{u_{0}-u_{1}}{2^n}\prod\limits_{k=1}^n\frac{1}{u_{k}^2+1}$$
o
$$\frac{2(u_{0}-u_{1})}{\prod\limits_{k=1}^n\left(u_{k+1}^2+1\right)}=
\frac{2(u_{0}-u_{1})\left(u_{1}^2+1\right)}{\prod\limits_{k=1}^{n+1}\left(u_{k}^2+1\right)}>
l>
\frac{2(u_{0}-u_{1})}{\prod\limits_{k=1}^n\left(u_{k}^2+1\right)}$$
o
$$L_1>l>L_2$$
donde
$$L_2=\frac{2(u_{0}-u_{1})}{\lim\limits_{n\to\infty}\prod\limits_{k=1}^n(u_{k+1}^2+1)} \text{ y }
L_1=L_2\left(u_{1}^2+1\right) \etiqueta{2}$$
So, it looks like Robert (see the comments) was right, it depends on $u_0$.
Nota: el siguiente límite existe
$$\lim\limits_{n\to\infty}\prod\limits_{k=1}^n(u_{k+1}^2+1)$$
porque
$$0<\sum\limits_{k=1}\ln(u_{k+1}^2+1)<\sum\limits_{k=1}u_{k+1}^2<\infty$$
mediante la prueba de razón de $(1)$.
El código siguiente es computing $(2)$ pero con un $\frac{1}{u_0}$ factor. Usted notará una cierta estabilidad en $\frac{L_1}{2^n u_0 \cdot u_n}$ e $\frac{L_2}{2^n u_0 \cdot u_n}$ para varios $u_0$
from math import atan
from math import pow
N = 300
U_0 = 190.0
u = []
it = U_0
u.append(it)
for i in range(1, N):
it = 0.5 * atan(it)
u.append(it)
val = 1.0
for i in range(1, N):
val *= (u[i] * u[i] + 1.0)
L2 = (2.0 * (u[0] - u[1]) / val) / u[0]
L1 = L2 * (u[1] * u[1] + 1.0)
MID = (L1 + L2) / 2.0
print "limit L1 =",L1
print "limit L2 =",L2
print "limit MID =",MID
for i in range(N-100, N):
Lp1 = L1 / pow(2, i)
Lp2 = L2 / pow(2, i)
MIDp = MID / pow(2, i)
r1 = Lp1 / u[i]
r2 = Lp2 / u[i]
rMID = MIDp / u[i]
print Lp2," vs ",u[i]," vs ",Lp1," --- ",MIDp
print r2," vs ",r1," --- ",rMID
Pruébalo aquí.