La continua dependencia de la solución en el valor inicial se ha demostrado con el
Grönwall la desigualdad: por $x>x_0$ uno tiene
$$
\|\Delta u'(x)\|\le L(x)\,\|Δu(x)\|\implica \|Δu(x)\|\le\exp\left(\int_{x_0}^xL(s)ds\right)\,\|Δu(x_0)\|.
$$
Para este problema el uso de $u=(y,y')$, $\|u(x)\|=\max(|y(x)|,|y'(x)|)$ , de modo que, a continuación, en $x>0$
$$
\|\Delta u'(x)\|\le\max(|Δy'(x)|,\frac3{2x}|Δy(x)|+x^{7/2}|Δy(x)|)\le\max(1,\frac3{2x}+x^{7/2})\,\|Δu(x)\|.
$$
So essentially, there are 2 segments for the Lipschitz constant,
- for $x<1.1$, the Lipschitz constant is dominated by $L(x)\simeq \frac3{2x}$ leading to $$\|Δu(x)\|\le\left(\frac{x}{x_0}\right)^{3/2}\,\|Δu(x_0)\|$$
- para $x>1.1$ la constante de Lipschitz es dominado por el segundo término $L(x)\simeq x^{7/2}$ , de modo que
$$
\|Δu(x)\|\le\exp\left(\frac29(x^{9/2}-1.1^{9/2}\right)\|Δu(1.1)\|
\le\exp\left(\frac29(x^{9/2}-1.1^{9/2}\right)\left(\frac{1.1}{x_0}\right)^{3/2}\,\|Δu(x_0)\|
$$
Como se puede ver, en el segundo segmento, el factor relativo el error en $x_0$ a que el error en $x$ se deteriora rápidamente, por ejemplo, para obtener $\|Δu(5)\|<1$ uno tendría en $x_0=0.1$
$$
\|Δu(0.1)\|\le \exp\left(-\frac29(5^{9/2}-1.1^{9/2}\right)\left(\frac{0.1}{1.1}\right)^{3/2}\le 5.12205\cdot 10^{-137}
$$
que es imposible de realizar en el estándar de los valores de punto flotante. Aun admitiendo que esta estimación es un poco pesimista, el resultado práctico será un salto en el comportamiento de un mínimo de cambios en las condiciones iniciales.
Para hacer un observable de predicción, vamos a la condición inicial tener una variación en el epsilon de la máquina de la gama, $\|Δu(x_0)\|\sim 10^{-15}$ y calcular el intervalo en el cual las soluciones son visualmente cerca, que es $\|Δu(x)\|<10^{-2}$. No hay ningún problema en el primer segmento, por lo que en el segundo segmento, tenemos que resolver
$$
\exp\left(\frac29(x^{9/2}-1.1^{9/2}\right)\left(\frac{1.1}{0.1}\right)^{3/2}
\le 10^{13}$$
conduce a $x\le2.9$. Esto parece consistente con las parcelas en la cuestión de las gráficas comienzan a ser diferentes en torno $x=3.5$.
def sol(x,y0): return odeint(lambda y,x:[y[1],-3/(2*x)*y[0]-x**3.5*np.sin(y[0])], y0, x, atol=1e-12, rtol=1e-13)
x = np.linspace(0.1,5,703);
for k in range(-4,5):
a = 2.2191851423+1e-7*k;
y=sol(x,[a, 1]);
plt.plot(x,y[:,0]);
plt.grid(); plt.show()
Como se puede ver, el comportamiento real es varios órdenes de magnitud mejor que lo previsto, la no-linealidad aparece también el trabajo con miras a estabilizar el comportamiento de la solución hacia la reducción de oscilaciones alrededor de múltiplos de $2\pi$, de manera que no se vea el peor de los casos, se estima en cada intervalo de valores iniciales.