El atractor de lorenz en risc os en la frambuesa pi

Interesado en un nuevo proyecto Raspberry Pi? El atractor de Lorenz, casi sin ayuda originó toda una rama de la teoría del caos ciencia. Parece adecuado que un hombre que trabajó durante gran parte de su vida en Cambridge, Massachusetts, será recordado por un programa que se ejecuta en un sistema operativo diseñado en Cambridge, Inglaterra.

Edward Norton Lorenz estaba trabajando en sistemas para predecir el tiempo. Se había construido un modelo matemático simple de cómo la convección atmósfera debe comportarse. Se reducía a un sistema de tres ecuaciones diferenciales ordinarias. Estaba usando uno de los primeros equipos de la década de 1950 para resolver estas ecuaciones por métodos numéricos, porque no hay manera analítica para resolverlos. Esto implicó cálculos o iteraciones de valores repite con el fin de hogar en el resultado. La salida de un conjunto de cálculos se alimentó a la entrada de otro. Esta es una técnica bien conocida primero inventado por Isaac Newton los resultados, ya sea en casa, en la respuesta correcta, cada vez más pequeños, o disparar hacia el infinito.

Lorenz lo que encontró fue una clase de ecuaciones que ni se dirigían hacia una consecuencia ni dispararon hacia el infinito, pero hicieron algo en el medio. Produjo lo que parecía ser el resultado de ciclo con los mismos valores de repetición en un patrón. Sin embargo, una inspección más cercana reveló que aunque los resultados hicieron ciclo, nunca se repiten - en otras palabras, se reciclan sin fin, pero se mantuvo dentro de ciertos límites. Una especie de interminable, nunca repetir conjunto finito de números.

Video: curva de lorenz

Este patrón de números constaba de tres valores que cambiarían con respecto a la otra. Si se va a utilizar estos números para trazar una posición en el espacio tridimensional, ellos describen una línea o órbita que nunca se repite, pero se fue para siempre. Esta forma fue bautizado más tarde una fractal, y esta clase de fractales se conoce como una atractor extraño. No importa cuáles eran las condiciones iniciales de partida, las ecuaciones siempre terminaron en esta curva (de ahí el nombre de atractor, y porque es una cosa extraña que suceda, la palabra extraño).

La forma de esta curva es una retorcida en forma de ocho del bucle conocida como una curva de mariposa o el atractor de Lorenz. En 1969, Lorenz describió el efecto mariposa, que establece que un cambio casi insignificante en las condiciones iniciales (como el batir de alas de una mariposa) podría causar un gran cambio en el resultado de un sistema iterado.

Todo lo que tenía Lorenz para visualizar sus números con un teletipo era crudo, pero en estos días tenemos computadoras de alta velocidad con pantallas gráficas Lorenz nunca soñó. Es relativamente fácil de ver su curva con más detalle que nunca podría Lorenz.

Video: Os Perezianos - Caminho de Rato

La implementación del lenguaje BASIC en RISC OS hace que sea fácil de escribir un programa para visualizar el atractor de Lorenz muy rápidamente y con gran detalle. Esto se muestra en el código siguiente.

 10: REM El Lorenz Attractor - por Mike Cook20: MODO 2830: CLS: CLG40: PROC_Size50: S = Ymax% / 80: SX = Xmax% / 70: SZ = 260: N% = 70: F% = 0: INC = 4E-370: SX% = Xmax% / 2: SY% = Ymax% / 2: SZ% = 080: X = -6,5: Y = -8,8: Z = 2090: P1 = 10: P2 = 28: P3 = 2,66666100 : 110: REPEAT120: N% = N% + 1130: SI N% gt; 200 ENTONCES N% = 0: GCOL 0, RND (63) TINTE 255140: D1 = P1 * (YX) 150: D2 = P2 * XYX * Z160: D3 = X * Y-P3 * Z170: X = X + D1 * INC180: Y = Y + D2 * INC190: Z = Z + D3 * INC200: PROC_PLOT (X, Y) 210: TIME = 0220: REPEAT230: HASTA TimeGT; 0240: B% = Adval (-1) 250: hasta que B% lt; gt; 0260: A $ = GET $ 270: SI A $ ="s" ENTONCES * Screensave Attract280: END290: 300: DEF PROC_PLOT (X, Y) 310: X% = X * SX: Y% = Y * S320: X% = X% + SX%: Y% = Y% + SY% 330 : si F% = 0 THEN mOVER X%, Y% ELSE DRENAJE X%, Y% 340: F% = 1: mover REM sólo el primero time350: ENDPROC360: 370: DEF PROC_Size380: SYS"OS_ReadModeVariable", -1,3 A ,, Ncolours% 390: SYS"OS_ReadModeVariable", -1,4 A ,, XFact% 400: SYS"OS_ReadModeVariable", -1,5 A ,, YFact% 410: SYS"OS_ReadModeVariable", -1,11% en ,, XLIM 420: SYS"OS_ReadModeVariable", 1,12 A ,, Ylim% 430: Xmax% = xlim% lt;

Las posiciones de partida iniciales se dan en la línea 80, y los parámetros de la ecuación se dan en la línea 90. El bucle principal en el programa pasa de la línea 110 a la línea 280. Esto simplemente repite hasta que se pulsa cualquier tecla del teclado. Si se pulsa la tecla es una S, entonces un volcado de pantalla se hace para guardar una imagen de la pantalla en formato sprite. El bucle funciona por las líneas 140 a 160 la búsqueda de la diferencia en los valores de la última iteración hasta la actualidad. El cálculo iteración se escala con la variable , que se fija para ser 0,004 en las líneas 170 a 190, y el número resultante se representa en la pantalla. Observe cómo sólo el x y y Los valores se representan, dando una vista mirando hacia el z-eje. Puede cambiar las dos variables pasadas en el PROC TRAMA llamar a haber dos valores para obtener una visión diferente de la curva. Puede combinar la x, y, y z valores de esta llamada a dar cualquier ángulo de proyección ortográfica, si quieres. Por ejemplo, hacer los siguientes cambios en el código dará una vista isométrica de la curva:

 42: C1 = 0,707107: C2 = 0,40824143: C3 = 0,816597: C4 = -C2200: PROC_PLOT (C1 * X + C1 * Z, C2 * X + C3 * Y + C4 * Z)

Líneas 210 a 230 simplemente hacen un retardo de tiempo, por lo que es más largo al incrementar el número al final de la línea 230 o eliminar por completo sin pasar por estas tres líneas.

los TRAMA procedimiento en sí mismo simplemente escalas de los dos puntos y luego se desplaza hacia la mitad de la pantalla. Por último, si es la primera vez trazado, da una movimiento Comando de lo contrario, se da un empate en el último comando de punto de gráficos.

los tamaño procedimiento obtiene el tamaño de la pantalla en píxeles por lo que el gráfico llena la pantalla, y las líneas 120 y 130 añadir un poco de variedad cambiando el color de la línea de cada 200 puntos.

Artículos Relacionados