Hola Juan,

Gracias por el codigo de octave! (ya comienzo a entender la necesidad
de matlab :P)

Me gusta que aun cambiando los valores de inicio, la grafica tiende a
tener la misma "escencia", y no se enloquece hasta el infinito
perdiendo ese sentido.

Voy a transcribir este codigo a P5 e intentar usarlo con las 3d graficamente.

ya les mantendre informados

zea


> Hola Gabriel,
>
> Que bueno que te intereses en el tema. En parte tiene que ver con
> fractales y sistemas-l, pero por lo que se pueden aplicar en el dominio
> del tiempo se vuelven señales de control.
>
> Inclusive son tan eficaces (ver código), que se podrían programar dentro
> del mismo código de Wiring.
>
> Jugando a lo geek, te paso el código del Attractor de Lorenz en
> Octave :-)
>
> La clave con los sistemas dinámicos es cambiar ( o jugar con las
> condiciones iniciales), de tal forma que la función converja y no se
> vaya al infinito. El numero de reiteraciones a veces también influye
> paro por ahora no es tan relevante. Las condiciones iniciales en este
> caso son: x,y,z. Trata de cambiar una variable a la vez, por ejemplo,
> cambiar y = 0.5 por y = 0.333 y, así sucesivamente.
>
> Para correr este programita, <copy-and-paste> y salvalo como lorenz1 y
> ponlo en un directorio de trabajo. En ese mismo directorio corres octave
> en la linea de comandos. En el prompt de octave, solo escribes lorenz1 y
> debe aparecer la gráfica en gnuplot. Nota que con estos valores
> iniciales: x=0;y=0.5;z=1.0, la función es cuasi-periódica pero tiende
> hacia un valor (por lo del atractor):
>
>
>
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
> %
> % lorenz1.m - matlab main program implementing
> %              the lorenz attractor:
> %
> %              juanig_at_ccrma
> %
> %                    w/help from Craig Sapp
> %
> %   Iterate the following differential equations:
> %
> %               dx/dt = a(y-x)
> %               dy/dt = bx - y - zx
> %               dz/dt = xy -cz
> %
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>
> N = 1000;          % Iterations
> delta = 0.01;
> x = 0.0;
> y = 0.5;           % Change Initial conditions
> z = 1.0;
>
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>
> for i=1:N
>
>  dx = 10.0 * (y-x);
>  dy = x * (28.0-z) - y;
>  dz = x*y - (8.0/3.0)*z;
>  xnew = x + delta*dx;
>  ynew = y + delta*dy;
>  znew = z + delta*dz;
>
>  x = xnew;
>  y = ynew;
>  z = znew;
>
>
>  X(i) = x+28;  % Store in array for plotting
>  Z(i) = z;
>  % disp(sprintf('x(%d)=%f',i,x(i)));
>  %disp(sprintf('x(%d)=%f\t y(%d)=%f\t z(%d)=%f',
>  % i,X(i),i,Y(i),i,Z(i)));
> end
>
> j=1:N;
> plot(j,X(j));     % X against time series
> % plot(X(j), Z(j)); % complete attractor
>
>
> title("Lorenz Attractor");
> xlabel("X");
> ylabel("Z");
>
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>
>
> La gráfica debe parecerse mas o menos a esta:
>
>
>
>
> A propósito, Emacs tiene octave-mode : -D
>
> Los valores acá están normalizados entre 10 y 50 para facilitar las
> cosas con valores positivos y mayores que 1.0 pero pueden mapearse a
> otra cosa.
>
>  Suerte!.
>
>   --* Juan
>
> _______________________________________________
> ____ ____ ___  ____ _  _ ___
> |__| |__/   /  |___  \/  |__]
> |  | |  \  /__ |___ _/\_ |
>
> Arzexp mailing list
> [email protected]
> http://lists.slow.tk/listinfo.cgi/arzexp-slow.tk
>
>



-- 
Gabriel Zea
===============================
http://twitter.com/z3a
http://zea.randomlab.net -> Portfolio
http://nerdbots.info -> Experimental lab
http://randomlab.net -> Art Host
_______________________________________________
____ ____ ___  ____ _  _ ___
|__| |__/   /  |___  \/  |__]
|  | |  \  /__ |___ _/\_ |

Arzexp mailing list
[email protected]
http://lists.slow.tk/listinfo.cgi/arzexp-slow.tk

Responder a