Anda di halaman 1dari 21

Proyecto:

Caminata aleatoria
Everardo Rivera Oliva
Matrícula:1617225
Objetivo
• Crear un programa que simule una caminata aleatoria k veces de n
pasos, que obtenga la distancia total recorrida, que obtenga el
promedio del cuadrado del mismo con el fin de graficar el logaritmo
del esperado del cuadrado de la distancia contra el número de pasos
observando que la pendiente de esta recta tiende a ser 0.5.
Proceso
• El caminante comienza en el origen de coordenadas del plano
cartesiano, puede moverse únicamente dando pasos de una unidad
en dirección de los ejes coordenados. Estos pasos deben ser
aleatorias, es decir el hecho de que se mueva a la izquierda, derecha,
arriba u abajo debe ser una decisión aleatoria o pseudoaleatoria.
• El caminante dará N pasos desde el origen con las restricciones
descritas, una vez dados los N pasos observaremos donde termina en
el plano y calcularemos la distancia al origen.
• La caminata de N pasos se repetirá k veces y a partir de las distancias
obtenidas se hará un promedio del cuadrado de las mismas.

k

∑ Ri
2

< R 2 >= i=1


k

• De la teoría tenemos que la raíz del esperado es proporcional a la raíz
del número de pasos:

<R >= N
2
• Si aplicamos logaritmo natural a ambos lados obtenemos:

log( < R 2 > ) = 0.5log(N )

• Esto teniendo la forma de la ecuación de una recta donde la pendiente


es 0.5. Si graficamos esta relación es lo que esperaríamos obtener.
• Para obtener la pendiente utilizaremos los métodos de mínimos
cuadrados:
• Con las observaciones medidas la pendiente debe tender a ser 0.5
• Se realizó un programa en Fortran que realizara este proceso descrito:
• El programa lo que hace es pedirle al usuario el número de pasos que
quiere que de el caminante, una vez ingresado este valor se guarda en
una variable n.
• Una vez hecho esto lo que hace es que va a correr el proceso de n pasos
un número k de veces determinado a ser 1000000. Esto debido a que
mientras más grande sea la repetición mejor será la estimación
cuadrática.
• Se inicializa el vector posición en <0,0>. Se crea una variable a que va a
tomar un valor aleatorio a través de la función rand. Si el valor se
encuentra entre los intervalos dados es hacia donde se moverá:
Izquierda A<=0.25
Derecha 0.25<A<0=0.50
Arriba 0.50<A<=0.75
Abajo 0.75<A<=1.0
• Es decir, las probabilidades son iguales, más la selección es aleatoria.
• Una vez obtenido el valor de a, se modifica correspondientemente la
coordenada x u y según corresponda. Una vez terminada la caminata
se obtiene el cuadrado de la distancia a la cual terminó y se almacena
en una variable suma que va ir almacenando cada una de las distancias
cuadradas obtenidas.
• Al terminar el ciclo 100000 de veces la variable suma contiene todos
los valores cuadráticos de las distancias obtenidas, con esto se saca el
promedio de estas y posteriormente se obtiene la raíz de este número,
este valor se almacena en dist.
• Una vez teniendo dist se obtiene su logaritmo natural.
• A su vez se obtiene el logaritmo natural de N, se guardan en las
variables w, z.
• Estos puntos se van almacenando en un archivo de texto datos.txt
que contiene los puntos w,z con los valores de los logaritmos.
• Este proceso se hace para todos los n desde 1 hasta el valor ingresado
por el usuario.
• Posteriormente por medio de GNUplot se grafican los puntos.
• La pendiente de la recta la obtenemos a través de los mínimos
cuadrados para lo cual se creó una subrutina en el programa para
calcularla y se despliega en pantalla.
Resultados
• Se corrió el programa para 5,10,15,20,30 pasos.
• Se graficó en GNUplot los resultados y se obtuvo la pendiente con el
programa.
N=5
N=10
N=15
N=20
N=30
Conclusiones
• Se observa como era esperado que la pendiente tiende a ser 0.5, sin
embargo hay cierta variación mientras más se aumenta el valor de los
pasos. El valor de la pendiente sigue el comportamiento teórico por lo
que se demuestra la relación:


<R >= N
2


• Si tuviéramos mayor precisión en las variables y mayor número de
repeticiones observaríamos como la relación mejora mucho más.

Anda mungkin juga menyukai