Open source cross-platform software of geometry, analysis and simulation - Yves Biton
 
Home - Examples

Atractores en 3D: La utilización de una macro de construcción iterativa

publication Monday 5 September 2016.


Se trata aquí de representar en un referencial del espacio la sucesión de puntos de coordenadas $\left(x_n, y_n,z_n \right)$ definida por una relación de recurrencia del tipo $\begin{array}{l}x_{n+1}=sin\left( ay_n \right)-z_n\cos\left( bx_n \right)\\ y_{n+1}=z_n\sin\left( c x_n \right)-\cos\left( dy_n \right)\\ z_n=\sin\left( x_n \right) \end{array}$ con la posibilidad de cambiar estas fórmulas de recurrencia así como los valores de a, b, c y d y los valores de los primeros términos de la sucesión.

Notas
- Para que la siguiente figura guarde una cierta fluidez es preferible utilizar el navegador Google Chrome, los demás navegadores son demasiados lentos para este tipo de figura (recordemos que la figura se visualiza en modo vectorial en un SVG).

- Es recomendable utilizar la versión 5.1 de MathGraph32 (o una versión posterior).

Inicialmente vamos a crear una macro de de construcción que vamos a utilizar a continuación de forma iterativa en una figura seudo 3D.

Creamos una nueva figura en blanco con el menú Archivo - Nueva figura sin unidad de longitud.

A continuación, utilizamos el menú Cálculos - Nuevo cálculo en R - Función real de tres variables y creamos una función llamada f de variables x, y y z definida por f(x,y,z)=2*x ((la fórmula no es lo importante) de la siguiente manera:

Procedemos de la misma manera para crear dos funciones reales de tres variables con nombre g y h definidas porg(x,y,z)=2*y y h(x,y,z)=2*z.

Ahora utilizamos el ícono (penúltima fila de íconos) para crear tres cálculos reales denominados x, y y z conteniendo como fórmula 1.

Con el ícono creamos tres puntos libres nominados O, I, J y K como se ve en la figura siguiente.

Esos puntos servirán para simular un referencial en el espacio.

Creamos ahora con el ícono un cálculo real nominado x’ que tenga por fórmula f(x,y,z).

Análogamente creamos otros dos cálculos nominados y’, z’ que tengan por fórmulas respectivas g(x,y,z) et h(x,y,z).

En las macro-construcciones de MathGraph32, los objetos fuentes numéricos deben ser designados antes de que los objetos fuentes gráficos. El principio de una implementación iterativa es que en cada iteración, los objetos fuentes deben ser sustituidos por los objetos finales, que deben ser de la misma naturaleza y creados en el mismo orden que los objetos fuentes, excepto los objetos fuentes que serán comunes a todas las implementaciones.

Por estas razones deberemos crear después nuestros tres cálculos x’, y’ y z’, cuatro nuevos puntos que se confunden realmente con los puntos, O, I, J, K.

Para ello, utilizamos el menú Crear - Clon de objeto y hagamos clic en el punto O. No hace falta nominar ese punto clon (Tecla Escape para salir del editor de nombres automático). Usamos la tecla F9 para reactivar esta herramienta y crear así (en este orden) clones de los puntos I, J, K.

Ahora vamos a crear un punto de coordenadas (x’, y’, z’) en el referencial formado por los cuatro puntos clones de O, I, J y K.

Para ello, utilizamos el menú Crear - Clon de objeto y hagamos clic en el punto O. No hace falta nominar ese punto clon (Tecla Escape para salir del editor de nombres automático). Usamos la tecla F9 para reactivar esta herramienta y crear así (en este orden) clones de los puntos I, J, K.

Ahora vamos a crear un punto de coordenadas (x’, y’, z’) en el referencial formado por los cuatro puntos clones de O, I, J y K.

Ahora utilizamos el menú Construcciones - Implementar una construcción predefinida (acceso directo F4), abrimos la carpeta Espacio versión 2 y luego la subcarpeta Puntos y abrimos la construcción llamada Punto por coordenadas.

Afectamos al elemento fuente nº 1 el cálculo x’ de la siguiente manera:

En la lista de la izquierda, activamos el número 2 y le afectamos a la derecha el cálculo y’.

Del mismo modo, activamos el número 3 y le afectamos el cálculo z’.

En la barra de indicaciones, de la parte inferior, ahora se nos solicita hacer clic en el origen del referencial: Hacemos clic sobre el clon de O (se debe especificar que desea designar el punto clon).

Del mismo modo, hacemos clic sucesivamente sobre los clones de los puntos I, J y K (en ese orden).

Veremos aparecer un nuevo punto. Vamos a cambiar su estilo con la herramienta después de activar el estilo "pixel" (en la parte inferior de la paleta de estilo de punto) y en la paleta de colores, el color azul.

Nuestra figura está lista para crear nuestra macro-construcción. Es importante que los elementos se hayan creado en el orden indicado: Los cálculos x’, y’, z’, luego los cuatro puntos clones O, I, J y K, luego el punto construido por la construcción Punto por coordenadas. En caso de error, es posible cambiar el orden de estos elementos en el protocolo de la figura (tecla de atajo F5) con las teclas de reclasificación situadas a la derecha del cuadro de diálogo del historial).

En primer lugar, utilizamos el menú Construcciones - Elección de objetos fuentes - numéricos.

En el cuadro de diálogo que se abre, introducimos los elementos f, g, h, x, y y z con la ayuda del botón Insertar o de un doble clic como a continuación:

Ahora utilizamos el menú Construcciones - Elección de objetos fuentes - gráficos y hacemos clic sobre los puntos O, I, J y K (se debe especificar que desean designar los puntos libres).

Ahora designamos los objetos finales de la construcción.

Utilizamos el menú Construcciones - Elección de objetos finales - numéricos y, presionando la tecla Ctrl, seleccionamos los cálculos x’, y’ y z’ de la siguiente manera.

Queda por elegir los objetos finales gráficos con el menú Construcciones - Elección de objetos finales - gráficos. Hacemos clic sobre los clones de los puntos O, I, J, K y sobre el último punto creado (el que habíamos asignado el estilo "pixel").

Ahora utilizamos la herramienta para ocultar los clones de los puntos O, I, J y K (esto no es esencial, pero es inútil mostrar estos puntos en cada iteración).

Para terminar la construcción usamos el menú Construcciones - Finalizar la construcción en curso. Damos un nombre a esta construcción, por ejemplo suiteRecurrente3D.

Ahora utilizamos el menú Construcciones - Guardar la construcción de la figura en un archivo para guardar esta construcción en la ubicación de nuestra elección.

Nos queda crear una nueva figura que 3D en la cual implementar nuestra construcción.

Utilizamos el menú Archivo - Nueva figura sin unidad de longitud
Verificamos con la ayuda del menú Opciones-Figura en curso que esta figura utiliza el radian como unidad de ángulo.

Pulsamos la tecla F4 para implementar una construcción predefinida: Vamos a la carpeta Espacio Versión2 y elegimos la construcción Referencial Ortogonal Espacio. Nuestra figura estará ahora equipada con una referencial seudo 3D.

Mediante el icono creamos cuatro cálculos a, b, c y d que contienen como valores respectivos -1.75, 1.6, 0.4 y 1.67.

De manera similar creamos tres cálculos x0, y0 y z0 que contienen como valores respectivos 0, 0 y 4.

Utilizamos el icono para crear la parte superior e izquierda de la figura un editor del valor de a como se muestra a continuación (se encuentra en la tercera fila de íconos de la parte inferior).

Procedemos de manera similar para asociar editores de los valores asociados a b, c, d, x0, y0 y z0.

Utilizamos el menú Cálculos - Nuevo cálculo en R - Función real de tres variables para crear una función f definida por f(x)=sin(a*y)-z*cos(b*x) como a continuación.

Creamos de igual manera otras dos funciones reales de tres variables g y h definidas por g(x)=z*sin(c*x)-cos(d*y) y h(x)=sin(x).

Con el ícono asociamos en la parte inferior izquierda de la figura un editor asociado a la función f como a continuación:

Procedemos de la misma manera para asociar a las funciones g y h editores de fórmula (pueden ser modificados después con el ícono de modificación de objeto gráfico).

Utilizamos el menú Construcciones - Incorporar una construcción en la figura desde un archivo y vamos a la carpeta donde hemos precedentemente guardado la construcción suiteRecurrente3D.mgc. Ahora ella forma parte de la figura y va a ser utilizada en una macro construcción iterativa.

Vamos ahora a crear une macro cuya función será la de implementar nuestra construcción suiteRecurrente3D de manera iterativa.

Para ello utilizamos el menú Macros - Nueva macro - Macro de construcción - iterativa. Hacemos clic en la parte superior izquierda de la figura para indicar su ubicación y completamos el cuadro de diálogo como a continuación

El número de objetos fuentes a reutilizar en cada iteración es 3: Se trata de las tres funciones de 3 variables f g y h que sirven para definir las fórmulas de recurrencia.

Un cuadro de diálogo aparecerá para especificar los objetos fuente numéricos:

Asociamos al objeto fuente Nº1 la función f.

Asociamos al objeto fuente Nº2 la función g.

Asociamos al objeto fuente Nº3 la función h.

Asociamos al objeto fuente Nº4 el cálculo x0.

Asociamos al objeto fuente Nº5 el cálculo y0.

Asociamos al objeto fuente Nº6 el cálculo z0.

Se nos pide a continuación, hacer clic sobre cuatro puntos: Cliqueamos en este orden sobre los puntos O, I, J y K.

La macro aparece sobre la figura.

En esta etapa, es aconsejable guardar la figura en el disco duro.

Ahora podemos hacer clic en el ícono de ejecución de macro y hacemos clic sobre la macro Implementar (que sólo puede realizarse una sola vez).

Ahora se puede hacer girar la figura, cambiar el ángulo de visión, modificar las fórmulas utilizadas.

Ensayemos por ejemplo con los valores siguientes:

- a = 2.74

- b = 1.19

- c = 1.6

- d = 0.99

- x0 = y0 = z0 = 1

- f(z) = a*cos(d*sin(a*y))-c*sin(b*x)

- g(z) = b*sin(c*cos(b*x))-d*cos(a*y)

- h(z) = x+y

Será necesario alejar la figura.

Advertencia: La figura contiene ahora un gran número de objetos. Se puede constatar pulsando sobre la tecla F5 de protocolo de la figura, desmarcando Objetos intermedios. Vemos que la figura incluye aproximadamente 36000 objetos. Esta es la razón por la que es mejor salvar la figura antes de ejecutar la macro.

Si deseamos podemos exportar la figura en una página HTML usando el menú Archivo - Exportar como- página web dinámica (html5) es mejor para exportarla antes de haber ejecutado la macro, y después de haber usado el menú Opciones - Figura en curso - Macro de arranque para seleccionar la macro Implementar como una macro de arranque. En la próxima apertura de la figura, esta macro se ejecutará automáticamente.