
En la teoría del caos , el mapa de Ikeda es un sistema dinámico de tiempo discreto que produce un atractor extraño . Fue introducido en 1979 por el físico Kensuke Ikeda como un modelo para el comportamiento de la luz dentro de un resonador óptico no lineal . [ 1 ] El mapa demuestra cómo un conjunto simple de reglas puede conducir a un comportamiento complejo y caótico a través de un proceso de rotación, escalado y traslación repetidos, una operación de "estiramiento y plegado" común en los sistemas caóticos.
El mapa se define mediante una función iterativa en el plano complejo . Para un número complejo dado, el siguiente valor se calcula como:Aquí,representa el campo eléctrico en el resonador en el pasoLos parámetrosyrelacionarse con la luz láser externa y la fase del sistema, mientras que(dónde) es un parámetro de disipación que representa la pérdida de energía en el resonador. [ 2 ]
Una versión de valor real del mapa, comúnmente estudiada, viene dada por las ecuaciones bidimensionales:dóndees un parámetro yPara valores del parámetroEste sistema exhibe un comportamiento caótico, generando el característico atractor fractal que se muestra en las imágenes del artículo.
Atractor
Esta animación muestra cómo cambia el atractor del sistema a medida que el parámetrose varía de 0,0 a 1,0 en pasos de 0,01. El sistema dinámico de Ikeda se simula durante 500 pasos, comenzando desde 20.000 puntos de partida colocados aleatoriamente. Los últimos 20 puntos de cada trayectoria se grafican para representar el atractor . Nótese la bifurcación de los puntos del atractor comoaumenta.
Trayectorias de puntos
Los gráficos que se muestran a continuación ilustran las trayectorias de 200 puntos aleatorios para diversos valores deEl gráfico insertado a la izquierda muestra una estimación del atractor, mientras que el gráfico insertado a la derecha muestra una vista ampliada del gráfico de la trayectoria principal.
Código Octave/MATLAB para trayectorias de puntos
El código Octave/MATLAB para generar estos gráficos se muestra a continuación:
% u = parámetro ikeda % opción = qué graficar % 'trajectory' - graficar la trayectoria de puntos de inicio aleatorios % 'limit' - graficar las últimas iteraciones de puntos de inicio aleatorios function ikeda ( u, opción ) P = 200 ; % cuántos puntos de inicio N = 1000 ; % cuántas iteraciones Nlimit = 20 ; % graficar estos últimos puntos para la opción 'limit' x = randn ( 1 , P ) * 10 ; % los puntos de inicio aleatorios y = randn ( 1 , P ) * 10 ; para n = 1 : P , X = compute_ikeda_trajectory ( u , x ( n ), y ( n ), N ); switch option case 'trajectory' % graficar las trayectorias de un montón de puntos plot_ikeda_trajectory ( X ); hold on ;caso 'límite' plot_limit ( X , Nlimit ); hold on ;de lo contrario disp ( 'No implementado' ); fin fineje ajustado ; eje igual texto ( - 25 , - 15 , [ 'u = ' num2str ( u )]); texto ( - 25 , - 18 , [ 'N = ' num2str ( N ) ' iteraciones' ]); fin% Graficar los últimos n puntos de la curva - para ver el punto final o el ciclo límite función plot_limit ( X, n ) plot ( X ( end - n : end , 1 ), X ( end - n : end , 2 ), 'ko' ); fin% Traza la trayectoria completa function plot_ikeda_trajectory ( X ) plot ( X (:, 1 ), X (:, 2 ), 'k' ); % hold on; plot(X(1,1), X(1,2), 'bo', 'markerfacecolor', 'g'); hold off end% u es el parámetro ikeda % x,y es el punto de partida % N es el número de iteraciones function [X] = compute_ikeda_trajectory ( u, x, y, N ) X = zeros ( N , 2 ); X ( 1 , :) = [ x y ]; for n = 2 : N t = 0.4 - 6 / ( 1 + x ^ 2 + y ^ 2 ); x1 = 1 + u * ( x * cos ( t ) - y * sin ( t )); y1 = u * ( x * sin ( t ) + y * cos ( t )); x = x1 ; y = y1 ;X ( n , :) = [ x y ]; fin finCódigo Python para trayectorias de puntos
importar matemáticasimport matplotlib.pyplot as plt import numpy as npdef main ( u : float , points = 200 , iterations = 1000 , nlim = 20 , limit = False , title = True ): """ Argumentos: u:float parámetro ikeda points:int número de puntos de inicio iterations:int número de iteraciones nlim:int grafica estos últimos puntos para la opción 'limit'. Graficará todos los puntos si se establece en cero limit:bool grafica las últimas iteraciones de puntos de inicio aleatorios si es True. De lo contrario, grafica trayectorias. title:[str, NoneType] muestra el nombre del gráfico si el valor es afirmativo """x = 10 * np.random.randn ( puntos , 1 ) y = 10 * np.random.randn ( puntos , 1 )para n en rango ( puntos ): X = compute_ikeda_trajectory ( u , x [ n ][ 0 ], y [ n ][ 0 ], iteraciones )si límite : plot_limit ( X , nlim ) tx , ty = 2.5 , - 1.8else : plot_ikeda_trajectory ( X ) tx , ty = -30 , -26plt.title ( f " Mapa de Ikeda ( { u =: .2g } , { iteraciones =} )" ) if title else None return pltdef compute_ikeda_trajectory ( u : float , x : float , y : float , N : int ): """Calcula una trayectoria completa Argumentos: u - es el parámetro de Ikeda x, y - coordenadas del punto de partida N - el número de iteraciones Devuelve: Un array. """ X = np . zeros (( N , 2 ))para n en rango ( N ): X [ n ] = np . array (( x , y ))t = 0,4 - 6 / ( 1 + x ** 2 + y ** 2 ) x1 = 1 + u * ( x * math . cos ( t ) - y * math . sin ( t )) y1 = u * ( x * math . sin ( t ) + y * math . cos ( t ))x = x1 y = y1devolver Xdef plot_limit ( X , n : int ) -> None : """ Grafica los últimos n puntos de la curva, para ver el punto final o el ciclo límite. Argumentos: X: np.array trayectoria de un punto de partida asociado n: int número de puntos "últimos" a graficar """ plt . plot ( X [ - n :, 0 ], X [ - n :, 1 ], 'ko' )def plot_ikeda_trajectory ( X ) -> None : """ Traza toda la trayectoria Argumentos: X: trayectoria np.array de un punto de partida asociado """ plt . plot ( X [:, 0 ], X [:, 1 ], "k" )if __name__ == "__main__" : main ( 0.9 , limit = True , nlim = 0 ) . show ()Referencias
- ↑ Ikeda, Kensuke (1979). "Estado estacionario multivaluado y su inestabilidad de la luz transmitida por un sistema de cavidad anular". Optics Communications . 30 (2). Elsevier BV: 257– 261. Bibcode : 1979OptCo..30..257I . CiteSeerX 10.1.1.158.7964 . doi : 10.1016/0030-4018(79)90090-7 . ISSN 0030-4018 .
- ↑ Ikeda, K.; Daido, H.; Akimoto, O. (1980-09-01). "Turbulencia óptica: comportamiento caótico de la luz transmitida desde una cavidad anular". Physical Review Letters . 45 (9). American Physical Society (APS): 709– 712. Bibcode : 1980PhRvL..45..709I . doi : 10.1103/physrevlett.45.709 . ISSN 0031-9007 .
- Mapas caóticos
- Sistemas dinámicos
- óptica no lineal