home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fish 'n' More 2
/
fishmore-publicdomainlibraryvol.ii1991xetec.iso
/
dirs
/
powerlogo_377.lzh
/
PowerLOGO
/
Examples
/
Chaos
next >
Wrap
Text File
|
1990-10-10
|
4KB
|
138 lines
; Example procedures of nonlinear systems.
; *********************************************************************
; lorenz
; The Lorenz attractor.
make "lorenz [
procedure [ [ ] [ ] [ :x :y :z :xn :yn :zn :h :f ] ]
make "s1 ( openscreen 3 1 [ Lorenz ] )
make "w1 openwindow :s1
setrgb :s1 0 [ 0 0 0 ]
setrgb :s1 1 [ 15 15 15 ]
setpen :w1 1
make "x 0.06
make "y 0.06
make "z 0.06
move :w1 + 320 * 6 :x - 200 * 6 :y
make "h 0.005
make "f / 8 3
while [ true ] [
make "xn + :x ( * 10 :h - :y :x )
make "yn + :y * :h ( - * 28 :x :y * :z :x )
make "zn + :z * :h - * :x :y * :z :f
make "x :xn
make "y :yn
make "z :zn
draw :w1 + 320 * 6 :x - 200 * 6 :y ] ]
; *********************************************************************
; bif
; Bifurcation diagram for May's equation.
make "bif [
procedure [ [ ] [ ] [ :r :x :b :sx :c :y :l ] ]
make "s1 ( openscreen 3 3 [ bif ] )
make "w1 openwindow :s1
make "r 1
while [ < :r 8 ] [
setrgb :s1 :r ( se 15 + :r :r + :r :r )
make "r + :r 1 ]
setrgb :s1 0 [ 0 0 0 ]
make "r 0
make "sx 0
while [ < :sx 640 ] [
make "x 0.9
make "l + 40 / :sx 3
repeat :l [
make "x / * :r :x power + :x 1 5
make "y - 399 * :x 50
make "c readpixel :w1 :sx :y
setpen :w1 if < :c 6 [ + 1 :c ] [ 7 ]
writepixel :w1 :sx :y ]
make "sx + :sx 1
make "r + :r 0.2 ] ]
; *********************************************************************
; bif2 pricesion ( limit )
; Bifurcation diagram for May's equation.
; bif2 1
; ( bif2 10 18 )
make "bif2 [
procedure [ [ :z ] [ :l ] [ :m :mi :r :x :sx :c :y :yy :zz ] ]
make "s1 ( openscreen 3 3 ( se "\ bif2 :z :l ) )
make "w1 openwindow :s1
make "r 1
while [ < :r 8 ] [
setrgb :s1 :r ( se 15 + :r :r + :r :r )
make "r + :r 1 ]
setrgb :s1 0 [ 0 0 0 ]
make "m ( system 3 ( * :z 8 640 ) )
make "mi :m
repeat * :z 640 [ poke 8 :mi 0.9 make "mi psum :mi 8 ]
make "zz / 0.2 :z
if emptyp :l [ make "l 40 ] [ ]
repeat :l [
make "r 0
make "sx 0
make "mi :m
while [ < :sx 640 ] [
make "yy -1
repeat :z [
make "x peek 8 :mi
make "x / * :r :x power + :x 1 5
poke 8 :mi :x
make "y int - 399 * :x 45
if = :yy :y
[ ]
[ make "c readpixel :w1 :sx :y
setpen :w1 if < :c 6 [ + 1 :c ] [ 7 ]
writepixel :w1 :sx :y ]
make "mi psum :mi 8
make "r + :r :zz
make "yy :y ]
make "sx + :sx 1 ] ]
( system 5 :m ) ]
; *********************************************************************
; bif3 pricesion ( limit )
; Bifurcation diagram for May's equation.
; bif3 1
; ( bif3 10 18 )
make "bif3 [
procedure [ [ :z ] [ :l ] [ :m :mi :r :x :sx :c :y :yy :zz ] ]
make "s1 ( openscreen 3 1 ( se "\ bif3 :z :l ) )
make "w1 openwindow :s1
make "r 1
setrgb :s1 0 [ 0 0 0 ]
setrgb :s1 1 [ 15 15 15 ]
make "m ( system 3 ( * :z 8 640 ) )
make "mi :m
repeat * :z 640 [ poke 8 :mi 0.9 make "mi psum :mi 8 ]
make "zz / 0.2 :z
if emptyp :l [ make "l 40 ] [ ]
repeat :l [
make "yy 399
move :w1 0 :yy
make "r 0
make "sx 0
make "mi :m
while [ < :sx 640 ] [
repeat :z [
make "x peek 8 :mi
make "x / * :r :x power + :x 1 5
poke 8 :mi :x
make "y int - 399 * :x 45
if = :yy :y
[ writepixel :w1 :sx :y
move :w1 :sx :y ]
[ draw :w1 :sx :y ]
make "mi psum :mi 8
make "r + :r :zz
make "yy :y ]
make "sx + :sx 1 ] ]
( system 5 :m ) ]