2 votos

Convergencia de la iteración de punto fijo de $\sin(x)$ en Java

¿Es matemáticamente correcto decir que $\sin(x)$ converge a cero cuando $x$ se acerca a $0$ ?

Si el $\sin(x)$ la iteración se realiza a partir de $\dfrac{\pi}{2}$ en Java, para $10^9$ iteraciones, el resultado es $5.4772255370828254\times 10^{-5}$ . Incluso con el rango del tipo de datos entero agotado, el resultado no está mostrando $0$ . ¿Significa esto que no convergerá a cero en un ordenador?

5voto

theog Puntos 585

Para los pequeños $x$ tenemos $\sin x\approx x-x^3/6$ . Así que sus iteraciones de punto fijo son aproximadamente $$\begin{align} x_0 &= \frac\pi2, \\ x_{k+1} &= x_k - \frac{x_k^3}6. \end{align}$$ Podemos además aproximar este proceso discreto mediante una ecuación diferencial $$\begin{align} x(0) &= \frac\pi2, \\ x'(t) &= -\frac{x(t)^3}6. \end{align}$$ Esta ecuación se puede resolver analíticamente, dando como resultado $$x(t) = \cfrac1{\sqrt{\frac13t+x(0)^{-2}}},$$ que es una función que va a cero muy muy lentamente (y evidentemente el valor inicial $x(0)$ apenas importa a largo plazo). De hecho, al conectar $t=10^9$ nuestra aproximación da $x(10^9)=5.477225572\times 10^{-5}$ .

5voto

marty cohen Puntos 33863

Para los pequeños $x$ , $\sin(x) \approx x-\frac{x^3}{6} $ . Por lo tanto, $\frac{\sin(x)}{x} \approx 1-\frac{x^2}{6} $ .

Aplicando esto, se puede demostrar que $\sin^{(n)}(x)$ , el $n$ -ésima sinusoide iterada de $x$ , satisface $\sin^{(n)}(x) \approx \sqrt{\frac{3}{n}}$ .

Una prueba, encontrada haciendo una búsqueda en Google de "seno iterado", se muestra aquí .

Esto explica la lentitud de la convergencia. Si $n = 10^9$ , $\sqrt{\frac{3}{n}} =\sqrt{\frac{3}{10^9}} \approx 5.4772255751E-5 $ , lo que concuerda muy bien con el cálculo de la OP.

Tenga en cuenta que esto no no depende de la situación inicial $x$ .

3voto

Soke Puntos 8788

$\sin x$ es una función que toma un valor único dependiendo de lo que $x \in \mathbb{R}$ que pusiste.

Así, cuando se dice "converge a cero", la interpretación natural sería en términos de un límite.

De hecho, desde $\sin x$ es continua, para evaluar el límite como $x \to 0$ Todo lo que tenemos que hacer es conectar $0$ en $\sin x$ para conseguir $\sin 0 = 0$ .


La convergencia es muy lenta ya que $\frac{\sin x}{x} \to 1$ como $x \to 0$ . En otras palabras, $\sin x \approx x$ cuando $x$ es pequeño, así que cuando se pone $x_{n+1} = \sin(x_n)$ , vas a conseguir un $x_{n+1}$ que no es muy diferente de $x_n$ desde $x_{n+1} = \sin(x_n) \approx x_n$ .

3voto

Graham Kemp Puntos 29085

La secuencia iterativa $\{x_k \mid x_0 {=} c,\, k\in\Bbb N^+,\, x_k{=}\sin x_{k-1}\}$ muy lentamente converge a cero ( $\lim\limits_{n\to\infty} x_n = 0$ ) para cualquier valor de $c$ (la semilla).

Sin embargo, como se ha señalado, el índice de convergencia es insoportablemente lento incluso para una semilla considerablemente pequeña.   No notarás mucho progreso incluso después de numerosas iteraciones.

La convergencia es lenta porque la derivada se aproxima $1$ cerca del punto límite; $\cos 0 = 1$ .   Así, en la aproximación al límite, se observa un cambio mínimo en las sucesivas iteraciones.   $\Delta x_n \to 0$ más rápido que $x_n\to 0$ .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X