MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: coupled map lattice problem

  • To: mathgroup at smc.vnet.net
  • Subject: [mg81315] Re: [mg81272] coupled map lattice problem
  • From: Daniel Lichtblau <danl at wolfram.com>
  • Date: Wed, 19 Sep 2007 05:23:58 -0400 (EDT)
  • References: <200709180439.AAA28713@smc.vnet.net>

B^3 wrote:
> It is a coupled map lattice problem.
> 
> We have a continuous variable x_i(t) at each site i at time t where
> 1<=i<=N. The evolution of x_i(t) is defined by
> 
> x_i(t+1) = F[x_i(t)] - (epsilon/2)[x_(i-1)(t) +x_(i+1)(t) - 2x_i(t)]
> 
> The parameter 'epsilon' is the coupling strength and the function F(x)
> is the circle map
> F(x)= x + omega -(k/2*Pi)sin(2*Pi*x)
> 
> The dynamics is confined to the interval [0,1] using
> If  int[x_i(t)]=m, x_i(t)=x_i(t)-m if x_i(t) >0
> 
>                       x_i(t)=x_i(t)-m+1 if x_i(t)<0
> 
> The fixed point solution of for the local map F(x) is given by
> 
> x* = (1/2*Pi) sin(-1)(2*Pi*omega/k)
> 
> My Problem is to draw "Space-Time" plot for the system, for say
> omega=0.068, epsilon=0.3, k=0.9, N=500.
> 
> Please advice me..
> 

This is a bit unclear, in ways I will try to enumerate.

(1) You claim t to be a continuous variable, but use it as a discrete one.

(2) You use some nonstandard notation i.e. int[...].

(3) It is not really clear, to me at least, what you want to obtain as a 
"Space-Time plot".

(4) You give no initial conditions, that is, the case t=0.

(5) You do not give boundary conditions, that is, for i<0 or i>500.

(6) Since you posted this to a Mathematica users list/group, it would be 
a really good idea to use Mathematica notation to the extent possible in 
describing your setup.

Anyway, here is an attempt at actual code. I'll assume constancy in 
crossing boundaries, and just make up an initial condition.

omega = 0.068;
epsilon = 0.3;
k = 0.9;
n = 500;

f[x_] := x + omega -(k/2*Pi)*Sin[2*Pi*N[x]]

x[i_,0] := 1/N[i+2]
x[i_,t_]/;i>500 := x[500,t]
x[i_,t_]/;i<0 := x[0,t]
x[i_,t_] := x[i,t] = Mod[f[x[i,t-1]] -
   (epsilon/2) * (x[i-1,t-1] + x[i+1,t-1] - 2*x[i,t-1]), 1]

This will compute a table of values up to 100 time steps. Takes about 
2-3 seconds on my machine (slightly faster if I redefine f using 
Compile, but not enough to go into details).

Timing[xtable = Table[x[i,t], {t,0,100}, {i,0,500}];]

You can get a spiky-laden plot via

ListPlot3D[xtable]


Daniel Lichtblau
Wolfram Research



  • Prev by Date: Re: Dice problem
  • Next by Date: Re: piecewise functions from logical relationships (ie. solving with constraints)
  • Previous by thread: coupled map lattice problem
  • Next by thread: Re: coupled map lattice problem