club de ciencias: universo fractal · respuestas sic = 0obtenemos{0,0,0,0,0,... sic =...
TRANSCRIPT
Club de Ciencias: Universo Fractal
José Ibrahim Villanueva Gutiérrez
Consejo Zacatecano de Ciencia, Tecnología e Innovación
17 de Julio 2017
1 El Universo Fractal
2 Los números complejos
3 Introducción a Processing: Dibujando líneas, círculos, polígonosa todo color
4 Equipos de Trabajo
El Universo Fractal
Los Fractales
Un fractal es un objeto cuya estructura básica, aparentementeirregular, se repite a diferentes escalas.
Características de un objeto fractal:Irregular.Autosimilar.dim(Hausdorff-Besicovitch) >dim(topológica).Recursivo.
Historia
Benoît Mandelbrot (1924-2010) matemático polaco en losaños 70’s estudia los fractales con la ayuda de la computadora.Conjunto de Mandelbrot: Sea c un número complejocualquiera. Definimos{
z0 = 0 término inicial,zn+1 = z2
n + c relación de inducción.
Si la sucesión es acotada, es decir que existe una constante Ktal que |zn| < K para todo n, entonces decimos que cpertenece al conjunto de Mandelbrot.
EjercicioCalcule los primeros 10 valores de la sucesión {zn} parac = 0, 1,−1,−1.5,−2 y −3. Determinar si estos están en elconjunto de Mandelbrot.
Respuestas
Si c = 0 obtenemos {0, 0, 0, 0, 0, . . .}Si c = 1 obtenemos {0, 1, 2, 5, 26, . . .} claramente lostérminos se hacen cada vez más grandes, por lo tanto noexiste tal constante K para c, es decir 1 no está en elconjunto de Mandelbrot.Si c = −1 tenemos {0,−1, 0,−1, . . .} y esta sucesión esacotada ya que |0| < | − 1| = 1.Si c = −1.5 tenemos
{0,−1.5, 0.75,−0.9375,−0.6210,−1.11,−0.25, . . .}
En general si |zn| ≤ 1.5 entonces |zn+1| = |z2n − 1.5| ≤ 0.75.
Entonces −1.5 está en el conjunto de Mandelbrot.
¿Cómo se ve el conjunto de Mandelbrot?
Más imágenes (Algoritmo de velocidad de escape)
Programación simple
¡Vamos a echarle un vistazo alProcessing!
Los números complejos
Los números naturales es el conjunto
N = {0, 1, 2, 3, . . .}.
Ellos nos ayudan a contar todo tipo de cosas, por ejemplo cultivosde bacterias
¡Hay infinitos números naturales!
Podemos sumar dos números naturales y el resultado será otronúmero natural:
Si a, b ∈ N ⇒ a + b ∈ N.
N tiene un elemento especial.Dado un número natural a 6= 0 ¿Existe b ∈ N tal que
a + b = 0?
No :(
Los números enteros
Z = {. . . ,−4,−3,−2,−1, 0, 1, 2, 3, . . .},
nos permiten solucionar la ecuación
x + a = 0, para todo a ∈ N.
Además de la suma, en los enteros también podemos definir otraoperación, la multiplicación:
a · b := a + a + · · ·+ a︸ ︷︷ ︸b veces
.
Cuando multiplicamos dos números enteros obtenemos un tercernúmero entero.Tenemos que 0 · a = 0 para todo a entero.Z tiene un elemento especial:
a · 1 = 1 · a = a, para todo a ∈ Z.
Si a 6= 0 y b son enteros, la ecuación
ax + b = 0,
no siempre tiene soluciones enteras.
EjemploSi a = 3 y b = −1, la ecuación
3x−1 = 0
no tiene soluciones enteras ya que ningún número enteromultiplicado por 3 es igual a 1.
¿Para qué números a la ecuación
ax = 1
tiene solución?
Los números racionales
Q ={m
n | m, n ∈ Z, n 6= 0},
son el conjunto de números que solucionan las ecuaciones del tipo
αx + β = 0, con α, β ∈ Z,
Ejemplo24/86 es solución a la ecuación 43x − 12 = 0.
Los números racionales Q están equipados de dos operaciones: Lasuma (Q,+, 0) y la multiplicación (Q,×, 1), un conjunto con dosoperaciones (abelianas, cerradas, compatibles, con inversos) sellama un campo.
¿La ecuación x2 − 2 = 0 tiene soluciones racionales?Es decir, si denotamos
√2 una solución
¿√2 pertenece a Q?
Supongamos que sí, entonces podemos escribir√2 = p
q con p, q ∈ Z \ {0},
podemos suponer que p y q son primos relativos, tenemos
2 · q2 = p2,
implica que p2 es par y por lo tanto p también, entonces podemosescribir p = 2k para un entero k.
2 · q2 = 4k2 ⇒ q2 = 2k2,
por lo tanto q es par, pero esto contradice que p y q sonprimos relativos.
√2 forma parte de una familia de números llamada irracionales.
Los cuales no podemos escribir como cociente de dos númerosenteros.La unión de estas dos familias forma el conjunto de los númerosreales R.
Si consideramos sucesiones de números racionales, es decirconjuntos de la forma
{an}n∈N = {a0, a1, a2, . . .} con ai ∈ Q,
decimos que una sucesión {an}n∈N con ai ∈ Q, converge a unpunto L si para cualquier distancia ε, por muy pequeña que sea,existe un índice N tal que la distancia de todos los miembros quele siguen de la sucesión al punto L es menor a ε.Por ejemplo, la sucesión1, 1 + 1/2, 1 + 1
2 + 12
, . . . , an = 1 + 11 + an−1
, . . .
converge a
√2.
Un número puede identificarse con varias sucesiones de números,por ejemplo el 2:
2 ↔ {2, 2, 2, 2, . . .},
2 ↔ {1987, 1986, 1985, . . . , 4, 3, 2, 2, 2, 2, . . .},
lo que nos importa es lo que pasa en la cola de la sucesión, es deciren el límite.
Definimos los números reales R como el conjunto desucesiones de números racionales que convergen, módulo lassucesiones que convergen a 0.Esta es la manera analítica de ver los números reales,geométricamente los números reales se identifican con la línearecta.
Pero si volvemos al álgebra, consideremos la ecuación
x2 + 1 = 0,
¿Tiene soluciones reales?
No :(
Si definimos i como un número tal que
i2 = −1,
entonces i es solución a la ecuación x2 + 1 = 0.Definimos los números complejos como
C = {a + bi | a, b ∈ R}.
Los números complejos forman un campo (podemos sumar, restar,multiplicar y dividir) algebraicamente cerrado. Es decir, laecuación
anxn + . . . a1x + a0 = 0, con ai ∈ C,
tiene exactamente n soluciones complejas.
Tenemos una correspondencia muy natural entre númeroscomplejos y puntos en el plano:
C = {a + bi | a, b ∈ R} ↔ R2 = {(a, b) | a, b ∈ R}
Para un número complejo z = a + bi. Denotamos <(z) = a laparte real y =(z) = b la parte imaginaria.
En forma polar:
z = a + bi=
√a2 + b2(cos(θ) + sin(θ)i)
= reiθ
Llamamos r =√
a2 + b2 = |z | el módulo del número complejoz = a + ib. Llamamos θ = arctan(b/a) el argumento de z .
El conjugado y el inverso
Denotamos z = a − ib el conjugado de z = a + ib.
Pregunta: ¿Cómo se ve el conjugado z de un número complejo zen el plano?
Para todo número complejo z 6= 0 existe un número complejo z−1
llamado inverso tal que
z ∗ z−1 = 1.
Ejercicio
Demuestre que |z |2 = zz . Concluya que z−1 = z|z |2 .
Suma de dos números complejos
Sean z1 = a1 + ib1 y z2 = a2 + ib2 dos números complejos,
z1 + z2 = (a1 + ib1) + (a2 + ib2)= (a1 + a2) + i(b1 + b2)
en el plano tenemos
Parte real e Imaginaria
EjercicioSea z un número complejo. Describa <(z) y =(z) en términos de zy su conjugado z .
Multiplicación de dos números complejosSean z1 = a1 + ib1 y z2 = a2 + ib2 dos números complejos,
z1 · z2 = (a1 + ib1)(a2 + ib2)= a1(a2 + ib2) + ib1(a2 + ib2)= a1a2 + ia1b2 + ib1a2 − b1b2
= a1a2 − b1b2 + i(a1b2 + b1a2)
es menos intuitivo deducir el comportamiento de la multiplicacióncon este tipo de coordenadas. La solución es tomar coordenadaspolares z1 = r1eiθ1 y z2 = r2eiθ2 , entonces
z1 · z2 = (r1eiθ1)(r2eiθ2)= r1r2eiθ1eiθ2
= r1r2eiθ1+iθ2
= r1r2ei(θ1+θ2)
Multiplicación de dos números complejos
Por lo tanto
z1 · z2 = (r1eiθ1)(r2eiθ2) = r1r2ei(θ1+θ2)
Ejercicios
Desarrollar y representar en el plano las siguientes operaciones denúmeros complejos:
1 (1 + i) + (2 + i)2 (1− 4i)− (−9 + 6i)3 (3i) ∗ (2 + i)4 (3 + i) ∗ i5 (3 + i) ∗ i2
6 (3 + i) ∗ i3
7 (3 + i) ∗ i4
8 (3 + i) ∗ i5
9 (−4− 2i) ∗(−1
2 +√
32 i)
10 (−4− 2i) ∗(−1
2 +√
32 i)2
11 (−4− 2i) ∗(−1
2 +√
32 i)3
Ejercicios
Encuentre el módulo, el argumento y los inversos de los siguientesnúmeros complejos:
1 i2 (−2− 2i)3(−3
2 +√
272 i)
4 e2πi/5
Introducción a Processing: Dibujando líneas,círculos, polígonos a todo color
Interfaz de Processing
Abrir Processing.Escribir en la primera líneaprint("Hello World!");y presionar el botón play (o Ctrl+R).Sin el punto y comaprint("Hello World!")obtenemos un error.Podemos cambiar el tamaño del marco donde vamos a dibujarsize(300,200);
Podemos ponerle color al fondo del marcobackground(255);
Ahora probemosbackground(255,0,0);
Dos funciones importantes
La función setup nos permite definir los parámetros generalesde nuestra animación:void setup() {
frameRate(60);size(300, 200);background(255,0,0);smooth();}
La función draw ejecuta en ciclos las instrucciones quecontiene, entoncesvoid draw() {
point(100+random(100),50+random(100));}dibuja puntitos aleatorios en un cuadro de 100px×100px.
Lineas
Las coordenadas en el marco de Processing están dispuestasde la siguiente manera:
Para trazar una línea debemos de decirle a Processing lospuntos de llegada y de partida:void draw() {
line(10,50,150,200);}
Elipses y rectángulos
Para graficar elipses tenemos que especificar las coordenadasde su centro, y la medida de sus ejes, por ejemplovoid draw(){
stroke(255,0,0);noFill();ellipse(50,100,30,30);stroke(0,255,0);fill(200,100,0);ellipse(220,150,100,20);}
Para graficar rectángulos tenemos que especificar lo mismo:unas coordenadas donde pondremos el vértice superiorizquierdo del rectángulo y el tamaño de sus lados:void draw() { fill(100,100,12); stroke(255);
rect(0,0,50,100); fill(18,100,12); noStroke();rect(200,120,20,20); }
Variables en ProcessingEn Processing existen varios tipos de variables:
boolean Representan una dicotomía: true or false (1 ó 0)
boolean Circle = true;
int Representan números enteros.
int n = 255;
float Representan números racionales.
float x = 3.1416;
color En escala de grises o en formato RGB.
color gris_claro = color(200); // Escala de Grisescolor verde = color(0,n,0); // Formato RGB
String Son cadenas de caracteres alfa-numéricos sin valoralguno.
String nombre = "Andrea";
Globales y localesLas variables locales sólo están definidas en una parte de nuestroprograma y las globales son válidas en todo el código.
Globalespublic boolean Shot;public int H=600;public int W=600;public int imnumber=0;
Localesvoid Photo() {
if(Shot){PImage newImage = createImage(W, H, RGB);newImage = get();String[] name = {"Image", str(imnumber), ".jpg"};newImage.save(join(name, ""));imnumber++;Shot=false;}
}
Funciones útiles en programación
if: ejecuta un comando si se satisface cierta propiedad o no.Estructura:if(Condición){Acciones en caso positivo}else{Acciones en caso negativo}Ejemplo:void setup(){background(255);}void draw(){}void mousePressed(){if(mouseX>=width/2){fill(255,0,0);}else{fill(0,0,255);}noStroke();ellipse(mouseX,mouseY,4,4);}
Funciones útiles en programación
for: ejecuta una instrucción una cierta cantidad de veces.Estructura:for(n=Valor_inicial,Valor_final, Próximo_valor_de_n){Acción}
Ejemplo:void setup(){background(255);}void draw(){for(int n=0;n<=width;n=(n+1)*(n+1)){line(n,0,n,height);line(0,n,width,n);}}
Equipos de Trabajo
Armemos equipos de trabajoCriterios
En todo equipo siempre habrá al menos una chica y al menosun chico.En todo equipo siempre habrá alguien que tenga nociones deprogramaciónLas personas del equipo no se conocían.