Re: Lorenz system
- To: mathgroup at smc.vnet.net
- Subject: [mg23861] Re: Lorenz system
- From: Brian Higgins <bghiggins at ucdavis.edu>
- Date: Mon, 12 Jun 2000 01:17:55 -0400 (EDT)
- References: <8hssdk$dd3@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Winston, There seems to be several difficulties with the problem you posed in your message to the Math group. First , the problem is not mathematically well posed. The coupling that you have indicated is not closed in the sense that the n-th equation requires information about the n-1 and n+1 equations. Thus if I take n=1, the ODE equation for x[t][1] requires knowledge about x[t][0], which is not defined. Likewise, for n=N the ODE for y[t][N] requires knowledge of y[t][N+1]. It seems that you need some auxilliary equations! Perhaps I am missing something! In addition, there are several Mathematica programming problems. Here are the obvious: (i) Since you specify init1, init2 etc. in the function call you cannot specify init1[[1]] in your program. Mathematica assumes init1 within the module is a list. (ii) The variables k1,k2,k3 in the function call do not pattern match anything in the Module : replace d1,d2,d3 in the module with ki,k2,k3. (iii) The code {N,0,48} in the module does not seem to do anything. I suspect that within NDSolve you want to have NDSolve[Flatten[Table[eqns,{N,0,N1}]],.... where egns are your ODEs and N1 identifies the number of coupled Lorenz equations . If this is the case you must then specify N1 in the function call rather that N. Hope this helps you get started. Cheers, Brian In article <8hssdk$dd3 at smc.vnet.net>, Winston Garira <uceswga at ucl.ac.uk> wrote: > Hi, > > Can someone help me. I am trying to solve a system of 48 Lorenz > equations which are diffusively coupled. In the system of equations, > k1, k2, and k3 are the coupling strengths (constants) which in this > case I gave the values k1=15.6, k2=8.8 and k3=5.9. In the system a, b, > and c are also constants and I assigned them values a=10, b=27, and > c=8/3. I used initial conditions x[0]=0.7, y[0]=0.3 and z[0]=-1.5. N > (is integer) represents the N th lorenz system and so it has values > from 0 to 48. In the notebook below in which I tried to plot the N=21 > Lorenz system I just got the error that x[t][21], y[t][21], z[t][21] > are not real numbers. > > Thank you > > Winston > > Lorenzs[init1_, init2_, init3_ ,N_, time_, k1_, k2_, k3_, {a_, b_, c_}]:= > Module[{}, > {N,0,48} ; > lorenz=NDSolve[{ > x'[t][N]+a*(y[t][N]-x[t][N])+ d1*(x[t][N-1]-2 x[t][N] + x[t][N])==0, > y'[t][N]+b*x[t][N]-y[t][N]-x[t][N] y[t][N] + d2*(y[t][N-1]-2 y[t][N]+y[t][N+1])==0, > z'[t][N]-c*z[t][N] +z[t][N] y[t][N] + d3 *(z[t][N-1]-2 z[t][N]+z[t][N+1])==0, > x[0][N]==init1[[1]], > y[0][N]==init2[[2]], > z[0][N]==init3[[3]]}, > {x[N], y[N], z[N]}, > {t,0,time}, MaxSteps->200000]; > x[t_][N] := Evaluate[x[t][N] /. lorenz]; > y[t_][N]:= Evaluate[y[t][N] /. lorenz]; > z[t_][N] := Evaluate[z[t][N] /. lorenz]; > ]; > > a=10; b=27; c=8/3; > > Lorenzs[{0.7,0.3,-1.5}, N, 5000, 15.6, 8.8, 5.9, {a,b,c}]; > Plot[{x[t][21], y[t][21], z[t][21]}, {t,0,600}, > PlotStyle\[Rule]{RGBColor[1,0,0.3],RGBColor[0,0.5,1],RGBColor[1, 0,0.3]}]; > > Sent via Deja.com http://www.deja.com/ Before you buy.