require 'plot numeric trig' NB. common utility mp=: +/ . * NB. *******sabun********************* NB. lorenz(1) dt=: 0.02 NB. or 0.01 NB.'noaxes' plot {@|: 10 50 8r3 lorenz1 0.1 0.2 0.3 lorenz1=: 4 : 0 dt=. 0.01 NB. dt 's r b'=. x NB. sigma gamma b 'X0 Y0 Z0'=. y NB. using only once /next XX,YY,ZZ XX=.X0 + dt * s *(Y0-X0) YY=.Y0 + dt * ((r*X0)-(Y0+X0*Z0)) ZZ=.Z0 + dt * ((X0*Y0)-b*Z0) XX,YY,ZZ ) lz=:4 : 0 NB. Lorenz attracta 's r b'=. x NB. parameter NB. 10 8r3 28 'xx yy zz'=: y NB. initial 5 8 10 or 1 1 1 X=. xx + dt*s*(yy-xx) Y=. yy + dt*((r*xx)-(yy+xx*zz)) Z=. zz + dt*((xx*yy)-b*zz) X,Y,Z ) NB. ----------------------------- NB. Lorenz(2) NB.maybe C.Reiter NB. Lorenz2 '`X Y Z'=: (0&{)`(1&{)`(2&{) 's b r'=: 10 8r3 28 dx=: s * (Y - X) dy=: (X * r - Z) - Y dz=: (X*Y) - b*Z dt2=: 0.005 I=: + (dt * dx, dy, dz) NB. plot {@|: I^:(i.:a*b)) - b*xx *yy Y=. yy+ dt* (yy*(<:b))+ b* ^&2 X X,Y ) Muta1=: 4 : 0 'a b'=: x NB. parameter 'xx yy'=: y X=. xx + dt*(yy + a*xx) Y=. yy + dt* ( b+ ^&2 X) X,Y ) init0=: 1.02 0.86 init1=: 0.57 1.55 init2=: 0.806 _0.85