Autor Tema: El problema (estocástico) de la rana

0 Usuarios y 1 Visitante están viendo este tema.

09 Julio, 2019, 04:09 pm
Leído 4465 veces

Masacroso

  • “Lo que oigo, lo olvido; lo que veo, lo recuerdo; lo que hago, lo aprendo” (antiguo proverbio chino)
  • Moderador Global
  • Mensajes: 4,562
  • País: es
  • Karma: +0/-0
El siguiente problema ha sido una de las motivaciones principales (aunque no la única) para que empezase a estudiar matemáticas hace unos años. Yo lo llamo el problema de la rana, ahora sabrán por qué.

Sea una rana en un plano (en el suelo, vamos), con una distancia de salto fija (es decir, siempre salta la misma distancia), y cada vez que salta la dirección es elegida al azar (es decir, uniformemente). Entonces las preguntas que me hago son las siguientes:

1. Después de \( n \) saltos, ¿cuál es la probabilidad de que la distancia al punto de partida sea menor a un valor dado? (Es decir: ¿cuál es la distribución de probabilidad de la distancia al origen?)

2. Después de \( n \) saltos, ¿cuál es la distancia media esperada respecto al origen?

3. ¿A qué tiende la distancia media conforme \( n \) tiende a infinito?

Este ejercicio es algún tipo de proceso estocástico browniano o similar (aún no he tenido tiempo para estudiar procesos estocásticos, así que mi capacidad de análisis del problema es muy limitada). A lo más que he llegado es a tener una idea del proceso, cómo se desarrolla.

esto estaba MUY erróneo
Si \( X\sim U[0,2\pi] \) es la variable aleatoria que modela la dirección de salto y \( g_n(X) \) es la variable aleatoria que modela la distancia al origen después de \( n \) saltos (asumiendo una distancia de salto de uno) entonces se puede ver que

\( \displaystyle g_n(X)=\|g_{n-1}(X)+e^{i X}\|_2=\sqrt{g_{n-1}(X)^2+2 g_{n-1}(X)\cos(X)+1},\quad\text{ con }g_0:=0 \)

La distribución de \( g_n(X) \) se complica muy rápido conforme \( n \) se incrementa, así que con técnicas elementales de teoría de probabilidad no parece muy atacable el problema (otra cosa es ver lo que pasa usando una simulación en el ordenador). Por ejemplo si \( g_n(X)\sim F_n \) entonces vemos que \( F_0(x)=\chi_{[0,\infty)}(x) \), \( F_1(x)=\chi_{[1,\infty)}(x) \), pero

\( \displaystyle F_2(x)=(1-\pi^{-1}\arccos(x^2/2-1))\chi_{[0,2]}(x) \)

(suponiendo que los cálculos sean correctos). No me he atrevido a calcular \( F_3 \). Y en general:

\( \displaystyle F_n(x)=\frac1{2\pi}\cdot\lambda_1(\{ s\in[0,2\pi]: g_n(s)\le x\}) \)

donde \( \lambda_1 \) es la medida de Lebesgue en \( \Bbb R \).
[cerrar]

¿Alguien más se atreve a atacar (ya sea una aproximación analítica) el problema?

CORRECCIÓN: ufff... he cometido un error gordísimo en el planteamiento anterior (ahora en el spoiler)... y es que estaba considerando que los saltos dependían de una única variable aleatoria, cuando cada salto es independiente del anterior. En verdad la variable aleatoria que define la posición de la rana en el plano después de \( n \) saltos es la suma de \( n \) variables aleatorias \( e^{i X} \) idénticamente distribuidas, entonces la variable aleatoria que rige la distancia después de \( n \) saltos viene dada por

\( \displaystyle Y_n:=\left|\sum_{k=1}^n e^{i X_k}\right|,\quad\text{donde } X_k\sim U[0,2\pi]\text{ i.i.d.} \)

En relación al desarrollo erróneo anterior tenemos también la identidad \( Y_{n+1}=\|Y_n+e^{i X_{n+1}}\|_2 \). La distribución de \( \sum_{k=1}^n e^{i X_k} \) tiende a una binormal conforme \( n \) aumenta, de ahí deducimos que la respuesta del punto 3 del problema es cero.

09 Julio, 2019, 08:29 pm
Respuesta #1

martiniano

  • Moderador Global
  • Mensajes: 2,093
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
Hola.

Interesante problema. Hay una cosa que nos da bastante información sobre \( d_n \): la distancia de la rana al origen después del salto \( n \). Supongamos que la rana se halla a una distancia \( d_n \) del origen y pega un salto de longitud \( L \) para acabar hallándose a una distancia \( d_{n+1} \). Si \( \theta=U(0,2\pi) \) es el ángulo que forma la posición de la rana antes del salto con la dirección hacia la que salta la rana tenemos, por el teorema del coseno, que:

\( d_{n+1}^2=d_n^2+L^2-2L\cdot{}d_n\cos\theta \)

Tomando esperanzas:

\( E[d_{n+1}^2]=E[d_n^2]+L^2-2L\cdot{}E[d_n]E[\cos\theta]=E[d_n^2]+L^2 \)

Como \( E[d_{1}^2]=L^2 \) por inducción se tiene \( E[d_n^2]=L^2n \)

Esto serviría para contestar al apartado 3. La esperanza tiende a infinito. Un saludo.

09 Julio, 2019, 08:46 pm
Respuesta #2

Masacroso

  • “Lo que oigo, lo olvido; lo que veo, lo recuerdo; lo que hago, lo aprendo” (antiguo proverbio chino)
  • Moderador Global
  • Mensajes: 4,562
  • País: es
  • Karma: +0/-0
Hola.

Interesante problema. Hay una cosa que nos da bastante información sobre \( d_n \): la distancia de la rana al origen después del salto \( n \). Supongamos que la rana se halla a una distancia \( d_n \) del origen y pega un salto de longitud \( L \) para acabar hallándose a una distancia \( d_{n+1} \). Si \( \theta=U(0,2\pi) \) es el ángulo que forma la posición de la rana antes del salto con la dirección hacia la que salta la rana tenemos, por el teorema del coseno, que:

\( d_{n+1}^2=d_n^2+L^2-2L\cdot{}d_n\cos\theta \)

Tomando esperanzas:

\( E[d_{n+1}^2]=E[d_n^2]+L^2-2L\cdot{}E[d_n]E[\cos\theta]=E[d_n^2]+L^2 \)

Como \( E[d_{1}^2]=L^2 \) por inducción se tiene \( E[d_n^2]=L^2n \)

Esto serviría para contestar al apartado 3. La esperanza tiende a infinito. Un saludo.

Sí, cierto, tiende a infinito, se puede ver intuitivamente al ver que en cada salto el arco de la circunferencia que aleja a la rana del origen es mayor al arco que la acerca al origen.

09 Julio, 2019, 09:17 pm
Respuesta #3

martiniano

  • Moderador Global
  • Mensajes: 2,093
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
Hola Masacroso.

¿Has intentado programar una simulación o algo así sobre el proceso?

09 Julio, 2019, 09:40 pm
Respuesta #4

Masacroso

  • “Lo que oigo, lo olvido; lo que veo, lo recuerdo; lo que hago, lo aprendo” (antiguo proverbio chino)
  • Moderador Global
  • Mensajes: 4,562
  • País: es
  • Karma: +0/-0
Hola Masacroso.

¿Has intentado programar una simulación o algo así sobre el proceso?

No, nunca lo he hecho. Lo cierto es que este proceso estocástico lo olvidé una vez empecé a estudiar matemáticas (aunque tenía en mente desarrollar los conocimientos matemáticos necesarios para estudiar procesos estocásticos, cosa que aún no he hecho por falta de tiempo entre otras cosas), lo he vuelto a revisitar hoy, a ver lo que podía sacar.

Pero es difícil programar correctamente un experimento de esta clase, al menos para que vaya lo más rápido posible. Un día podría intentarlo con Julia, que es un lenguaje de programación que me ha gustado mucho desde que le eché un vistazo y lo he ido aprendiendo poco a poco (aunque aún estoy en pañales).

En cualquier caso supongo que los chicos de stackoverflow siempre me podrán echar un cable :)

---

EDICIÓN: tengo un código base en Julia:

Código: [Seleccionar]
using LinearAlgebra
# La suma de n v.a. del plano
function rsum(n::Int64)
  p = [0,0]
  for j in 1:n
    x = rand(Float64)
    p = p + [cos(2*pi*x),sin(2*pi*x)]
  end
  return p
end
# Ahora la distancia
function rd(n::Int64)
  norm(rsum(n))
end

A partir ahí viene la simulación de Monte Carlo y la graficación.

CORRECCIÓN: he corregido el código.

09 Julio, 2019, 10:34 pm
Respuesta #5

martiniano

  • Moderador Global
  • Mensajes: 2,093
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
Hola.

Mira a ver esto qué te parece. En el archivo hay un código en C (main.c), un ejecutable (rana.exe), y el archivo que crea el ejecutable con los resultados (salida.txt). En este archivo cada columna es una rana, y cada fila un salto. La última columna es la de las distancias medias en cada salto.

Un saludo.

PD. Aviso de que si metes más de 188 ranas, el block de notas de windows te visualiza el archivo de una manera poco legible.

09 Julio, 2019, 10:58 pm
Respuesta #6

Masacroso

  • “Lo que oigo, lo olvido; lo que veo, lo recuerdo; lo que hago, lo aprendo” (antiguo proverbio chino)
  • Moderador Global
  • Mensajes: 4,562
  • País: es
  • Karma: +0/-0
Hola.

Mira a ver esto qué te parece. En el archivo hay un código en C (main.c), un ejecutable (rana.exe), y el archivo que crea el ejecutable con los resultados (salida.txt). En este archivo cada columna es una rana, y cada fila un salto. La última columna es la de las distancias medias en cada salto.

Un saludo.

PD. Aviso de que si metes más de 188 ranas, el block de notas de windows te visualiza el archivo de una manera poco legible.

No salen las columnas alineadas, así que es difícil de visualizar qué es qué, como por ejemplo las medias  :-\

09 Julio, 2019, 11:28 pm
Respuesta #7

martiniano

  • Moderador Global
  • Mensajes: 2,093
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
Vaya hombre.

A mí con menos de 188 ranas se me visualiza bien. No sé por qué puede ser, tal vez el editor de texto. Ni idea... El código para separar los datos utiliza tabulaciones y saltos de línea. Tal vez haya una manera mejor. Mañana le echaré un vistazo a ver.

Sinó puedes intentar copiar todo el texto, así tal cual,  y pegarlo en una hoja de cálculo tipo excel, a ver qué pasa... 

Un saludo.

10 Julio, 2019, 08:51 am
Respuesta #8

martiniano

  • Moderador Global
  • Mensajes: 2,093
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
Hola.

Lanzamos una nueva actualización del software rana  :D. Ahora te imprime por pantalla las medias de las distancias de todas las ranas al origen después de cada salto y te las escribe en un fichero de texto que se llama "medias.txt".

Un saludo.

10 Julio, 2019, 09:01 am
Respuesta #9

Masacroso

  • “Lo que oigo, lo olvido; lo que veo, lo recuerdo; lo que hago, lo aprendo” (antiguo proverbio chino)
  • Moderador Global
  • Mensajes: 4,562
  • País: es
  • Karma: +0/-0
Hola.

Lanzamos una nueva actualización del software rana  :D. Ahora te imprime por pantalla las medias de las distancias de todas las ranas al origen después de cada salto y te las escribe en un fichero de texto que se llama "medias.txt".

Un saludo.

Ah, mira, ya va bien. Lo que pasa es que tenía el "ajuste de línea" activado en el notepad, y eso me desajustaba todo, pero ahora se ve correctamente. Luego tengo que ver cómo abrir el archivo txt para hacer una gráfica con algún programa.



ACTUALIZACIÓN: si no me equivoco la esperanza de la distancia al cuadrado es esto

\( \displaystyle E[Y_n^2]=(2\pi)^{-n}\iint\cdots\int_0^{2\pi}\left(n+2\sum_{1\le k< j\le n}\cos(x_k-x_j)\right)\, dx_1\,dx_2\cdots dx_n \)

de lo que deducimos que \( E[Y_n^2]=n \), ahora habría que ver si, a partir de este dato, podemos calcular más fácilmente \( E[Y_n] \). Luego miro lo que puedo hacer con eso.



SEGUNDA ACTUALIZACIÓN: de lo anterior y la desigualdad de Jensen, sabiendo que la raíz cuadrada es cóncava, tenemos la cota \( E[Y_n]\le\sqrt n \).