31 votos

¿Por qué obtengo un resultado convergente al pulsar varias veces el coseno en una calculadora?

Estoy tratando de comprender lo siguiente: Si elijo un valor inicial cualquiera (por ejemplo, 1) y sigo pulsando sobre el coseno en la calculadora (en modo radián), me da un resultado de aproximadamente 0,739085...(creo que es el resultado de cos(x) = x), pero cuando repito el mismo procedimiento utilizando sin y tan, obtengo algo completamente diferente (parece que para sin converge a 0 mientras que para tan obtengo resultados muy disparatados).

Gracias por su ayuda.

5 votos

Te recomiendo que mires el Cobweb Plot asociado a las secuencias que defines aquí. Esto proporciona una interpretación visual satisfactoria de los fenómenos que estás observando.

4 votos

1 votos

42voto

Xander Henderson Puntos 805

Dejemos que $\cos^n$ denotan el $n$ -composición doble de la función coseno consigo misma, por ejemplo $$ \cos^3(\theta) = \cos(\cos(\cos(\theta))). $$ Obsérvese que esta notación no es la que suele utilizarse, por ejemplo, en los textos de introducción al cálculo. Sin embargo, es conveniente en el contexto actual.

Lo que está calculando (suponiendo que exista) es $$ \lim_{n\to\infty} \cos^n(\theta). $$ De nuevo, supongamos que este límite existe y es igual a $L$ . Es decir, supongamos que hay algún $L\in\mathbb{R}$ tal que $$ \lim_{n\to\infty} \cos^n(\theta) = L. $$ Tomando el coseno de cada lado de esto, y usando la continuidad del coseno, obtenemos $$ \cos(L) = \cos( \lim_{n\to\infty} \cos^{n}(\theta) ) = \lim_{n\to\infty} \cos^{n+1}(\theta) = L. $$ Así, $L$ suponiendo que exista, es una solución de la ecuación $$ \cos(x) - x = 0. $$ Esto confirma tu sospecha de que el número que obtienes es una solución de esta ecuación (suponiendo que tal número exista).

En este punto, se necesitan métodos numéricos para sacar algo más bonito de esta ecuación (darle a un botón de la calculadora repetidamente es un método numérico de este tipo), pero se puede demostrar que hay es una solución a través del teorema del valor intermedio: $\cos(0) - 0 = 1 \ge 0$ y $\cos(\pi) - \pi = -\pi < 0$ , por lo que existe una solución entre $0$ y $\pi$ .

Lo que queda es demostrar que este límite existe realmente. Nótese que la función coseno es una contracción en el intervalo $[-1,1]$ . Es decir, si $x,y\in [-1,1]$ entonces hay una constante $|C| < 1$ tal que $|\cos(x)-\cos(y)| < C|x-y|$ . Hay bonitos teoremas que nos dicen que debe haber un único punto fijo (específicamente, la teoría que eventualmente conduce a un teorema conocido alternativamente como el "Principio de Mapeo de Contracción" o el "Teorema del Punto Fijo de Banach").

Obsérvese que el coseno es una contracción en $[-1,1]$ y que $\cos(\mathbb{R})$ (es decir, la imagen de $\mathbb{R}$ bajo la función coseno, es decir, el rango de la función coseno) es ese intervalo. Así, desde cualquier punto de partida, después de la primera iteración estamos en el régimen en el que $\cos$ es contractiva, por lo que finalmente convergeremos a nuestro punto fijo, que fue "determinado" anteriormente (en la medida en que podemos describirlo). Esto dice prácticamente todo lo que hay que saber sobre la función coseno en este contexto.


La función seno es similar: es contractiva en el mismo intervalo, pero es mucho más fácil encontrar el punto fijo: $$ \sin(x) - x = 0 \implies x = 0. $$

La función tangente no es tan agradable. En realidad es una dilatación en el intervalo unitario simétrico, por lo que no podemos aplicar el Teorema del Punto Fijo de Banach, como en el caso anterior. Puede haber un punto fijo, pero para llegar a él, tendremos que trabajar hacia atrás, y considerar la aplicación iterativa del $\arctan$ función.

Este tipo de objetos se estudian como "sistemas dinámicos". En el lenguaje de los sistemas dinámicos, los puntos fijos de las funciones coseno y seno son atractivo en el sentido de que todo acaba por "caer" en esos puntos. El punto fijo de la función tangente es repulsivo (o repelente), en el sentido de que las cosas se alejan de él.

0 votos

¿Por qué fue Wolfie no puede obtener una forma exacta de la solución de $\cos x-x=0$ ?

0 votos

@gen-zreadytoperish Porque, como dije arriba, vas a tener que usar métodos numéricos para resolver esto. No hay una solución analítica bonita y de forma cerrada. Ver aquí .

12voto

Richard Fisher Puntos 51

Aquí hay una foto: enter image description here

La línea azul es $y=\cos x$ la línea verde es $y=x$ . La línea discontinua roja muestra lo que ocurre cuando se aplica repetidamente el coseno sobre un valor inicial de partida, en este caso cero. Se puede ver cómo converge a la intersección de las dos líneas, es decir, al punto donde $x=\cos x$ .

Generación de la línea roja discontinua

En la imagen, se parte del punto $(0,0)$ y seguir la línea discontinua. Moviéndose verticalmente desde $(x,y)$ a $(x,y')$ corresponde a la aplicación de $y'\gets\cos x$ . Moviéndose horizontalmente desde $(x,y)$ a $(x',y)$ corresponde a la aplicación de $x'\gets y$ . A partir de $(x_0,y_0)$ los puntos siguen esta secuencia ( $V$ y $H$ denotan movimiento vertical y horizontal respectivamente): \begin{align} (x_0,y_0) &\overset{V}{\to} (x_0,\cos x_0)\\ &\overset{H}{\to} (\cos x_0,\cos x_0)\\ &\overset{V}{\to} (\cos x_0, \cos(\cos x_0))\\ &\overset{H}{\to} (\cos(\cos x_0),\cos(\cos x_0))\\ &\overset{V}{\to} (\cos(\cos x_0),\cos(\cos(\cos x_0)))\\ &\overset{H}{\to} \cdots \end{align}

0 votos

¿qué software ha utilizado para ello?

2 votos

Creo que sólo he utilizado GNU Octave.

5voto

ZeRemz Puntos 551

En un intervalo suficientemente pequeño (por ejemplo $[-\pi/2 + \varepsilon, \pi/2 - \varepsilon]$ ), $\cos(x)$ es un mapeo de contracción, es decir $$|\cos(x) - \cos(y)| \le q |x-y|$$ para algunos $q < 1.$ (Esto se debe a que su derivada está limitada por $1$ .) El teorema del punto fijo de Banach se aplica para demostrar que $\cos(x) = x$ tiene una solución única, y para cualquier punto de partida $x$ en ese intervalo, la secuencia $(x_n)_n$ definido por $x_0 = x$ y $x_{n+1} = \cos(x_n)$ converge a esa solución.

El hecho de que $\cos(x)$ es periódica e incluso permite extender este resultado a todos los $\mathbb{R}.$ Es similar para $\sin(x)$ (nota $\sin(0) = 0$ es el único punto fijo). No funciona para $\tan(x)$ porque $\tan(x)$ no es una contracción.

3 votos

Pero el coseno no necesariamente mapea todo en ese intervalo de vuelta a ese intervalo.Tal vez usted debe tomar el intervalo para ser $[-1, 1]$ . Allí el coseno es una contracción.

5voto

PM 2Ring Puntos 1270

Como han mencionado Xander Henderson y otros, esta operación converge en la solución de la ecuación $\cos x = x$ y he explicado por qué converge, así que no trataré ese hecho en esta respuesta. Me limitaré a mencionar que si se observan las gráficas de $y = \cos x$ y $y = x$ es bastante obvio que hay una y sólo una solución real para $\cos x = x$ . Sin embargo, me he dado cuenta de que ninguna de las respuestas existentes da realmente un valor para esto $x$ , a veces conocido como el Número de Dottie, o mencionar una forma más rápida de evaluarlo, y tengo la intención de remediar esa situación.

También se ha mencionado que no hay una solución de forma cerrada para esta ecuación utilizando funciones elementales. Converge razonablemente rápido, como has descubierto, (y como yo descubrí hace varias décadas, cuando aparecieron las calculadoras científicas :) ), pero podemos utilizar fácilmente un poco de cálculo para encontrar un algoritmo que converja mucho más rápidamente.

Se trata de una aplicación clásica del conocido Método Newton-Raphson .

Queremos resolver $y = x - \cos x$ para $y = 0$

$$y = x - \cos x$$

Diferenciando,

$$dy/dx = 1 + \sin x$$

Ahora $\frac{dy}{dx} \approx \Delta y / \Delta x$

Así que podemos dejar que

$$\Delta x = \frac{\Delta y}{1 + \sin x}$$

Ahora

$$\Delta y = -y = \cos x - x$$

Así,

$$\Delta x = \frac{\cos x - x}{1 + \sin x}$$

Podríamos detenernos ahí, pero si continuamos obtendremos una bonita cancelación.

Dejemos que $x'$ sea la nueva aproximación para $x$ . Es decir

$$\begin{align} x' & = x + \Delta x\\ & = x + \frac{\cos x - x}{1 + \sin x}\\ & = \frac{x + x \sin x + \cos x - x}{1 + \sin x}\\ x' & = \frac{x \sin x + \cos x}{1 + \sin x}\\ \end{align}$$


Aquí hay un programa de Python que utiliza esa fórmula. Sólo necesitamos hacer algunos bucles para alcanzar el límite de precisión de los números de punto flotante de 64 bits.

from math import sin, cos

x = 1
for i in range(4):
    print(i, x)
    s = sin(x)
    x = (cos(x) + s * x) / (s + 1)

print(x, cos(x))

salida

0 1
1 0.7503638678402439
2 0.7391128909113617
3 0.7390851333852839
0.7390851332151607 0.7390851332151607

Utilizando la precisión arbitraria mpath podemos obtener fácilmente muchos más dígitos con sólo unos pocos bucles más.

from mpmath import mp

def print_digits(s, colsize=5, rowsize=50, blocksize=250):
    ''' Print high precision decimal string in columns, rows, & blocks '''
    # Split off integer part & decimal point
    *parts, s = s.partition('.')
    print(''.join(parts))

    # Format digits after the decimal place
    cols = []
    for i in range(0, len(s), colsize):
        j = i + colsize
        # Columns are separated by a space,
        # rows are separated by a single newline,
        # blocks are separated by two newlines.
        sep = (' ' if j % rowsize
            else '\n' if j % blocksize else '\n\n')
        cols.extend([s[i:j], sep])
    print(''.join(cols))

# Set the precision to 2000 decimal places
mp.dps = 2000

sin, cos = mp.sin, mp.cos
x = 1
for i in range(11):
    s = sin(x)
    x = (cos(x) + s * x) / (s + 1)

print_digits(str(x))

salida

0.
73908 51332 15160 64165 53120 87673 87340 40134 11758 90075
74649 65680 63577 32846 54883 54759 45993 76106 93176 65318
49801 24664 39871 63027 71490 36913 08420 31578 04405 74620
77868 85249 03891 53928 94388 45095 23480 13356 31276 77223
15809 56353 77657 24512 04373 41993 64335 12538 40978 00343

40646 70047 94021 43478 08027 18018 83771 13613 82042 06631
63350 37277 99169 67312 23230 06138 86582 03621 77081 09978
97062 68424 05880 94898 68326 18606 00485 89895 85487 25736
76401 50752 27608 18039 14595 18101 62815 91200 96461 64606
75440 51326 41517 10644 66281 10936 08258 48783 71383 95555

61751 41494 71593 90062 77527 56325 86349 38869 73014 08366
51525 11520 42678 85153 02529 41718 03651 76420 17708 60718
99276 01609 87432 71545 52267 56579 82462 97611 77553 96166
99549 31115 85665 34834 95383 85231 59636 02527 49955 87252
50666 64013 13187 40139 25388 88055 20618 69859 21392 52528

54154 11079 10029 98282 92986 40521 69046 55473 66968 71438
73564 60065 21225 46891 49975 92096 99758 50136 42495 08565
04732 49725 84248 37155 48364 83437 27583 74675 25453 35800
66420 04788 39718 85848 90145 31155 06041 78123 37047 77395
34717 10345 11958 54600 72656 14647 21419 78753 73880 23680

29553 44127 94853 01620 77437 43315 90133 91933 23148 76628
28552 17782 70052 31111 78246 86229 57127 86199 58490 58929
78171 80601 56715 85092 53714 04181 46882 85824 54046 44526
55883 15798 59786 67282 99052 07226 86870 94531 30864 95350
44481 38762 32367 76569 23613 25971 52294 15582 29334 15223

69636 98322 65805 17766 85366 37759 37066 43679 29565 98287
11924 91109 47930 11267 60115 22614 29243 71121 71487 02935
43102 93038 78065 42303 10930 07600 02409 80335 56727 30891
51766 68247 56247 72917 20259 45634 73838 58189 99548 42071
81825 61281 93120 90775 73740 22398 85853 96422 00631 32270

25328 45511 60110 76298 67410 60230 99696 24600 46288 53977
84470 79428 66907 48442 61986 19229 57526 39675 15917 84325
95550 97753 94210 80967 31399 81533 82554 94805 27727 29806
59555 18624 34873 99989 44589 81750 86210 57831 26013 92783
08279 72906 91694 42203 86806 52977 23102 01474 61968 67501

16979 00223 36525 95179 73670 54931 31976 05150 85764 33674
63449 04471 87196 10601 81776 20236 18885 83971 51415 31833
42332 51271 72162 70117 51797 43026 02487 76822 00067 45587
38185 02965 94214 70461 70423 42065 97465 13966 68395 61557
29100 71089 57281 30968 30388 12301 43385 35545 47878 98962

Podemos simplificar esta fórmula. La versión simplificada no converge tan rápidamente, pero es más fácil de calcular, y sigue convergiendo más rápido que iterando $x = \cos x$

El seno del número de Dottie es $\approx 0.673612$ . Podemos redondearlo a $\frac{2}{3}$ y lo introducimos en nuestra fórmula. Convergerá incluso si empezamos con $x = 1$ pero es mejor empezar con una aproximación más cercana, por ejemplo $x = \frac{3}{4}$ . Tenga en cuenta que $\left(\frac{2}{3}\right)^2 + \left(\frac{3}{4}\right)^2 = \frac{64 + 81}{144} = \frac{145}{144} \approx 1$ .

$$x' = \frac{x \sin x + \cos x}{1 + \sin x}$$

Sustituyendo $\sin x = \frac{2}{3}$

$$\begin{align} x' & = \frac{\frac{2}{3} x + \cos x}{1 + \frac{2}{3}}\\ & = \frac{\frac{2}{3} x + \cos x}{\frac{5}{3}}\\ & = \frac{2 x + 3 \cos x}{5}\\ x' & = 0.4 x + 0.6 \cos x \end{align}$$

En otras palabras, realizamos una media ponderada de $x$ y $\cos x$ . Esto todavía converge al valor correcto. En la convergencia,

$$\begin{align} x & = \frac{2 x + 3 \cos x}{5}\\ 5x & = 2x + 3 \cos x\\ x & = \cos x \end{align}$$

Y aquí hay una breve demostración en Python.

from math import cos

x = 0.75
for i in range(8):
    y = cos(x)
    print(i, x, y)
    x = 0.4 * x + 0.6 * y

salida

0 0.75 0.7316888688738209
1 0.7390133213242926 0.7391335046629345
2 0.7390854313274777 0.7390849324030849
3 0.739085131972842 0.7390851340520015
4 0.7390851332203376 0.7390851332116734
5 0.7390851332151391 0.7390851332151751
6 0.7390851332151607 0.7390851332151607
7 0.7390851332151607 0.7390851332151607

1voto

Doug M Puntos 51

Para todos $x, |\sin x| \le |x|$

La secuencia $\sin \circ \sin\circ \cdots \circ \sin x$ se acerca monótonamente a $0$

En general, la secuencia $f^n(x)$ donde $n$ representa la composición, convergerá algún $x$ si existe algún $x$ tal que $f(x) = x$ y $|f'(x)| < 1$ en un barrio suficientemente grande.

Cuando este es el caso $x-\delta < f(x+\delta) < x + \delta$ y con cada iteración nos encontramos más cerca de $x.$

$\cos x$ encaja en el proyecto de ley.

Hay valores de $\tan x$ tal que $\tan x = x$ superando una prueba, por ejemplo $x\approx 4.494$ Sin embargo, $|\frac {d}{dx} \tan x | \ge 1$ fallando la segunda prueba.

$\ln x$ fallará, porque no pasa la primera prueba.

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